diff options
author | Christian Ruppert <idl0r@gentoo.org> | 2012-01-15 02:10:35 +0100 |
---|---|---|
committer | Christian Ruppert <idl0r@gentoo.org> | 2012-01-15 02:10:35 +0100 |
commit | 30a56cdb4680f90e6c371c75c27c6ecec2d7aeec (patch) | |
tree | ff9d19dcc2503bcf3ca7600d7cbad00725b69cdf | |
parent | 14625346c07a2a66fe77ce578c9423918bec1d97 (diff) |
Add "ifstopped" command to runscript
Signed-off-by: Christian Ruppert <idl0r@gentoo.org>
-rw-r--r-- | man/runscript.8 | 3 | ||||
-rw-r--r-- | src/rc/runscript.c | 8 |
2 files changed, 10 insertions, 1 deletions
diff --git a/man/runscript.8 b/man/runscript.8 index 6ad6031b..dbc0b7dc 100644 --- a/man/runscript.8 +++ b/man/runscript.8 @@ -32,6 +32,7 @@ .Op Fl D , -nodeps .Op Fl d , -debug .Op Fl s , -ifstarted +.Op Fl S , -ifstopped .Op Fl Z , -dry-run .Op Ar command ... .Sh DESCRIPTION @@ -76,6 +77,8 @@ Set xtrace on in the shell to assist in debugging. Ignore all dependency information the service supplies. .It Fl s , -ifstarted Only run the command if the service has been started. +.It Fl S , -ifstopped +Only run the command if the service has been stopped. .It Fl q , -quiet Turns off all informational output the service generates. Output from any non OpenRC commands is not affected. diff --git a/src/rc/runscript.c b/src/rc/runscript.c index 2f66971c..8e0ced98 100644 --- a/src/rc/runscript.c +++ b/src/rc/runscript.c @@ -1079,12 +1079,13 @@ service_plugable(void) } #include "_usage.h" -#define getoptstring "dDsvl:Z" getoptstring_COMMON +#define getoptstring "dDsSvl:Z" getoptstring_COMMON #define extraopts "stop | start | restart | describe | zap" static const struct option longopts[] = { { "debug", 0, NULL, 'd'}, { "dry-run", 0, NULL, 'Z'}, { "ifstarted", 0, NULL, 's'}, + { "ifstopped", 0, NULL, 'S'}, { "nodeps", 0, NULL, 'D'}, { "lockfd", 1, NULL, 'l'}, longopts_COMMON @@ -1093,6 +1094,7 @@ static const char *const longopts_help[] = { "set xtrace when running the script", "show what would be done", "only run commands when started", + "only run commands when stopped", "ignore dependencies", "fd of the exclusive lock from rc", longopts_help_COMMON @@ -1235,6 +1237,10 @@ runscript(int argc, char **argv) if (!(rc_service_state(service) & RC_SERVICE_STARTED)) exit(EXIT_FAILURE); break; + case 'S': + if (!(rc_service_state(service) & RC_SERVICE_STOPPED)) + exit(EXIT_FAILURE); + break; case 'D': deps = false; break; |