From 4d47ce440c3e8f193cff82a77e6691ee6e7fac33 Mon Sep 17 00:00:00 2001 From: William Hubbs Date: Tue, 15 May 2018 16:59:21 -0500 Subject: rc-service: add -d/--debug and -D/--nodeps options --- man/rc-service.8 | 14 ++++++++++++++ src/rc/rc-service.c | 12 +++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/man/rc-service.8 b/man/rc-service.8 index a0202a8e..3613f8b8 100644 --- a/man/rc-service.8 +++ b/man/rc-service.8 @@ -20,6 +20,14 @@ .Ar service cmd .Op Ar ... .Nm +.Fl d , -debug +.Ar service cmd +.Op Ar ... +.Nm +.Fl D , -nodeps +.Ar service cmd +.Op Ar ... +.Nm .Op Fl i , -ifexists .Ar service cmd .Op Ar ... @@ -72,6 +80,12 @@ otherwise -1. .Fl r , -resolve does the same and also prints the full path of the service to stdout. .Pp +.Fl d , -debug +sets -x when running the service script(s). +.Pp +.Fl D , -nodeps +ignores dependencies when running the service. +.Pp .Fl Z , -dry-run prints out the commands it would execute rather than executing them. .Sh SEE ALSO diff --git a/src/rc/rc-service.c b/src/rc/rc-service.c index 77f0336b..ea69dab5 100644 --- a/src/rc/rc-service.c +++ b/src/rc/rc-service.c @@ -29,8 +29,10 @@ const char *applet = NULL; const char *extraopts = NULL; -const char *getoptstring = "ce:ilr:INZ" getoptstring_COMMON; +const char *getoptstring = "cdDe:ilr:INZ" getoptstring_COMMON; const struct option longopts[] = { + { "debug", 0, NULL, 'd' }, + { "nodeps", 0, NULL, 'D' }, { "exists", 1, NULL, 'e' }, { "ifcrashed", 0, NULL, 'c' }, { "ifexists", 0, NULL, 'i' }, @@ -42,6 +44,8 @@ const struct option longopts[] = { longopts_COMMON }; const char * const longopts_help[] = { + "set xtrace when running the command", + "ignore dependencies", "tests if the service exists or not", "if the service is crashed then run the command", "if the service exists then run the command", @@ -78,6 +82,12 @@ int main(int argc, char **argv) longopts, (int *) 0)) != -1) { switch (opt) { + case 'd': + setenv("RC_DEBUG", "yes", 1); + break; + case 'D': + setenv("RC_NODEPS", "yes", 1); + break; case 'e': service = rc_service_resolve(optarg); opt = service ? EXIT_SUCCESS : EXIT_FAILURE; -- cgit v1.2.3