mirror of
https://github.com/troglobit/finit.git
synced 2026-10-13 10:14:47 +00:00
initctl: add create command, no template yet
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
1 parent
6cf8c7ade4
commit
001e859a97
3 files changed
+21
-4
No files matched your search
+3
-1
@@ -655,7 +655,8 @@ static int usage(int rc)
|
||||
" help This help text\n"
|
||||
" version Show Finit version\n"
|
||||
"\n"
|
||||
" ls|list List all .conf in /etc/finit.d/\n"
|
||||
" ls | list List all .conf in /etc/finit.d/\n"
|
||||
" create <CONF> Create .conf in /etc/finit.d/available/\n"
|
||||
" enable <CONF> Enable .conf in /etc/finit.d/available/\n"
|
||||
" disable <CONF> Disable .conf in /etc/finit.d/[enabled/]\n"
|
||||
" touch <CONF> Mark .conf in /etc/finit.d/ for reload\n"
|
||||
@@ -712,6 +713,7 @@ int main(int argc, char *argv[])
|
||||
{ "disable", serv_disable },
|
||||
{ "touch", serv_touch },
|
||||
{ "edit", serv_edit },
|
||||
{ "create", serv_creat },
|
||||
{ "reload", do_reload },
|
||||
|
||||
{ "cond", do_cond },
|
||||
|
||||
+17
-3
@@ -200,7 +200,7 @@ int serv_touch(char *arg)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int serv_edit(char *arg)
|
||||
static int do_edit(char *arg, int creat)
|
||||
{
|
||||
char *editor[] = {
|
||||
"sensible-editor",
|
||||
@@ -225,8 +225,12 @@ int serv_edit(char *arg)
|
||||
err(1, "Failed creating %s/available directory", FINIT_RCSD);
|
||||
|
||||
snprintf(path, sizeof(path), "%s/%s", available, arg);
|
||||
if (!fexist(path))
|
||||
return serv_list(NULL);
|
||||
if (!fexist(path)) {
|
||||
if (!creat)
|
||||
return serv_list(NULL);
|
||||
|
||||
/* XXX: fill with template/commented-out examples */
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < NELEMS(editor); i++) {
|
||||
if (systemf("%s %s 2>/dev/null", editor[i], path))
|
||||
@@ -237,6 +241,16 @@ int serv_edit(char *arg)
|
||||
return 1;
|
||||
}
|
||||
|
||||
int serv_edit(char *arg)
|
||||
{
|
||||
return do_edit(arg, 0);
|
||||
}
|
||||
|
||||
int serv_creat(char *arg)
|
||||
{
|
||||
return do_edit(arg, 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Local Variables:
|
||||
* indent-tabs-mode: t
|
||||
|
||||
@@ -29,6 +29,7 @@ int serv_enable (char *arg);
|
||||
int serv_disable (char *arg);
|
||||
int serv_touch (char *arg);
|
||||
int serv_edit (char *arg);
|
||||
int serv_creat (char *arg);
|
||||
|
||||
#endif /* FINIT_SERV_H_ */
|
||||
|
||||
|
||||
Reference in new issue
Block a user