From 38f8eee495494a4c08adb64faa5b2c37d059765c Mon Sep 17 00:00:00 2001 From: Roy Marples Date: Tue, 15 Jan 2008 09:50:14 +0000 Subject: [PATCH] We should not use options for rc-update, as add, delete and such are commands. --- man/rc-update.8 | 14 ++++++------ src/rc/_usage.c | 4 ++++ src/rc/rc-update.c | 56 +++++++++++++++++----------------------------- 3 files changed, 32 insertions(+), 42 deletions(-) diff --git a/man/rc-update.8 b/man/rc-update.8 index f4d0e54f..852e9cb7 100644 --- a/man/rc-update.8 +++ b/man/rc-update.8 @@ -1,4 +1,4 @@ -.\" Copyright 2007 Roy Marples +.\" Copyright 2007-2008 Roy Marples .\" All rights reserved .\" .\" Redistribution and use in source and binary forms, with or without @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd Dec 15, 2007 +.Dd Jan 15, 2008 .Dt RC-UPDATE 8 SMM .Os OpenRC .Sh NAME @@ -30,16 +30,16 @@ .Nd add and remove services to and from a runlevel .Sh SYNOPSIS .Nm -.Fl a , -add +.Ar add .Ar service .Op Ar runlevel ... .Nm -.Fl d , -delete +.Ar delete .Ar service .Op Ar runlevel ... .Nm -.Fl s , -show .Op Fl v , -verbose +.Ar show .Op Ar runlevel ... .Sh DESCRIPTION OpenRC uses named runlevels. Rather than editing some obscure @@ -61,13 +61,13 @@ to the or the current one if none given. Services added to the boot runlevel must exist in .Pa /etc/init.d . -.It Fl d , -delete Ar service +.It Ar delete Ar service Delete the .Ar service from the .Ar runlevel or the current one if none given. -.It Fl s , -show +.It Ar show Show all enabled services and the runlevels they belong to. If you specify runlevels to show, then only those will be included in the output. .It Fl v , -verbose diff --git a/src/rc/_usage.c b/src/rc/_usage.c index b6e2bebb..57cdb9a4 100644 --- a/src/rc/_usage.c +++ b/src/rc/_usage.c @@ -30,7 +30,11 @@ static void usage (int exit_status) const char * const has_arg[] = { "", "", "[arg]" }; int i; +#ifdef usagestring + printf (usagestring); +#else printf ("Usage: %s [options] ", applet); +#endif #ifdef extraopts printf (extraopts); #endif diff --git a/src/rc/rc-update.c b/src/rc/rc-update.c index 7181ac1a..72b94a3a 100644 --- a/src/rc/rc-update.c +++ b/src/rc/rc-update.c @@ -4,7 +4,7 @@ */ /* - * Copyright 2007 Roy Marples + * Copyright 2007-2008 Roy Marples * All rights reserved * Redistribution and use in source and binary forms, with or without @@ -129,17 +129,15 @@ static void show (char **runlevels, bool verbose) } #include "_usage.h" -#define getoptstring "ads" getoptstring_COMMON +#define usagestring "" \ + "Usage: rc-update [options] service \n" \ + " rc-update [options] del service \n" \ + " rc-update [options] show" +#define getoptstring getoptstring_COMMON static struct option longopts[] = { - { "add", 0, NULL, 'a'}, - { "delete", 0, NULL, 'd'}, - { "show", 0, NULL, 's'}, longopts_COMMON }; static const char * const longopts_help[] = { - "Add the init.d to runlevels", - "Delete init.d from runlevels", - "Show init.d's in runlevels", longopts_help_COMMON }; #include "_usage.c" @@ -165,17 +163,7 @@ int rc_update (int argc, char **argv) longopts, (int *) 0)) != -1) { switch (opt) { - case 'a': - action |= DOADD; - break; - case 'd': - action |= DODELETE; - break; - case 's': - action |= DOSHOW; - break; - - case_RC_COMMON_GETOPT + case_RC_COMMON_GETOPT } } @@ -187,23 +175,21 @@ int rc_update (int argc, char **argv) eerrorx ("%s: cannot mix commands", applet); /* We need to be backwards compatible */ - if (! action) { - if (optind < argc) { - if (strcmp (argv[optind], "add") == 0) - action = DOADD; - else if (strcmp (argv[optind], "delete") == 0 || - strcmp (argv[optind], "del") == 0) - action = DODELETE; - else if (strcmp (argv[optind], "show") == 0) - action = DOSHOW; - if (action) - optind++; - else - eerrorx ("%s: invalid command `%s'", applet, argv[optind]); - } - if (! action) - usage (EXIT_FAILURE); + if (optind < argc) { + if (strcmp (argv[optind], "add") == 0) + action = DOADD; + else if (strcmp (argv[optind], "delete") == 0 || + strcmp (argv[optind], "del") == 0) + action = DODELETE; + else if (strcmp (argv[optind], "show") == 0) + action = DOSHOW; + if (action) + optind++; + else + eerrorx ("%s: invalid command `%s'", applet, argv[optind]); } + if (! action) + action = DOSHOW; if (optind >= argc) { if (! action & DOSHOW)