diff options
author | David Oberhollenzer <david.oberhollenzer@tele2.at> | 2018-02-25 14:33:19 +0100 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@tele2.at> | 2018-03-24 17:04:20 +0100 |
commit | 9a88f7da453eadc72d8f333700dbd80777feecd1 (patch) | |
tree | 8a096e37123ece1d20bcb4d0ae8e064bdd39747a /servicecmd/list.c |
Initial commit
Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
Diffstat (limited to 'servicecmd/list.c')
-rw-r--r-- | servicecmd/list.c | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/servicecmd/list.c b/servicecmd/list.c new file mode 100644 index 0000000..2286197 --- /dev/null +++ b/servicecmd/list.c @@ -0,0 +1,71 @@ +#include "servicecmd.h" +#include "service.h" +#include "config.h" + +static int cmd_list(int argc, char **argv) +{ + int i, ret = EXIT_SUCCESS; + service_list_t list; + service_t *svc; + + (void)argc; (void)argv; + + if (srvscan(SVCDIR, &list)) { + fprintf(stderr, "Error while reading services from %s\n", + SVCDIR); + ret = EXIT_FAILURE; + } + + for (i = 0; i < TGT_MAX; ++i) { + if (list.targets[i] == NULL) + continue; + + fputs("******** target: ", stdout); + + switch (i) { + case TGT_BOOT: + fputs("boot", stdout); + break; + case TGT_SHUTDOWN: + fputs("shutdown", stdout); + break; + case TGT_REBOOT: + fputs("reboot", stdout); + break; + case TGT_CAD: + fputs("ctrl-alt-delete", stdout); + break; + } + + fputs(" ********\n", stdout); + + for (svc = list.targets[i]; svc != NULL; svc = svc->next) { + fprintf(stdout, "Name: %s\n", svc->name); + fprintf(stdout, "Descrption: %s\n", svc->desc); + + fputs("Type: ", stdout); + switch (svc->type) { + case SVC_ONCE: fputs("once\n", stdout); break; + case SVC_WAIT: fputs("wait\n", stdout); break; + case SVC_RESPAWN: fputs("respawn\n", stdout); break; + } + + fputc('\n', stdout); + } + + fputc('\n', stdout); + } + + del_srv_list(&list); + return ret; +} + +static command_t list = { + .cmd = "list", + .usage = "", + .s_desc = "print a list of currently enabled services", + .l_desc = "Print a list of currently enabled services.", + .run_cmd = cmd_list, +}; + +REGISTER_COMMAND(list) |