initctl: add create command, no template yet

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
Joachim Wiberg committed 2021-02-26 12:47:47 +01:00
1 parent 6cf8c7ade4
commit 001e859a97
3 files changed
+21 -4

No files matched your search

+3 -1
View File
@@ -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
View File
@@ -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
+1
View File
@@ -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_ */