aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--man/rc-update.814
-rw-r--r--src/rc/_usage.c4
-rw-r--r--src/rc/rc-update.c56
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>", "[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 <runlevel>\n" \
+ " rc-update [options] del service <runlevel>\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)