diff options
Diffstat (limited to 'debianutils')
-rw-r--r-- | debianutils/Config.in | 8 | ||||
-rw-r--r-- | debianutils/Makefile.in | 1 | ||||
-rw-r--r-- | debianutils/run_parts.c | 56 |
3 files changed, 40 insertions, 25 deletions
diff --git a/debianutils/Config.in b/debianutils/Config.in index 108cc53..8bdb91f 100644 --- a/debianutils/Config.in +++ b/debianutils/Config.in @@ -33,6 +33,14 @@ config CONFIG_RUN_PARTS Unless you know that run-parts is used in some of your scripts you can safely say N here. +config CONFIG_START_STOP_DAEMON + bool "start-stop-daemon" + default y + help + start-stop-daemon is used to control the creation and + termination of system-level processes, usually the ones + started during the startup of the system. + config CONFIG_WHICH bool "which" default n diff --git a/debianutils/Makefile.in b/debianutils/Makefile.in index 313faa0..8ca05c7 100644 --- a/debianutils/Makefile.in +++ b/debianutils/Makefile.in @@ -27,6 +27,7 @@ DEBIANUTILS-y:= DEBIANUTILS-$(CONFIG_MKTEMP) += mktemp.o DEBIANUTILS-$(CONFIG_READLINK) += readlink.o DEBIANUTILS-$(CONFIG_RUN_PARTS) += run_parts.o +DEBIANUTILS-$(CONFIG_START_STOP_DAEMON) += start_stop_daemon.o DEBIANUTILS-$(CONFIG_WHICH) += which.o libraries-y+=$(DEBIANUTILS_DIR)$(DEBIANUTILS_AR) diff --git a/debianutils/run_parts.c b/debianutils/run_parts.c index a941e1f..98fd588 100644 --- a/debianutils/run_parts.c +++ b/debianutils/run_parts.c @@ -54,6 +54,13 @@ #include "libbb.h" +static const struct option runparts_long_options[] = { + { "test", 0, NULL, 't' }, + { "umask", 1, NULL, 'u' }, + { "arg", 1, NULL, 'a' }, + { 0, 0, 0, 0 } +}; + /* run_parts_main */ /* Process options */ int run_parts_main(int argc, char **argv) @@ -65,32 +72,31 @@ int run_parts_main(int argc, char **argv) umask(022); - while ((opt = getopt(argc, argv, "tu:a:")) != -1) { + while ((opt = getopt_long (argc, argv, "tu:a:", + runparts_long_options, NULL)) > 0) + { switch (opt) { - case 't': /* Enable test mode */ - test_mode = 1; - break; - case 'u': /* Set the umask of the programs executed */ - /* Check and set the umask of the program executed. As stated in the original - * run-parts, the octal conversion in libc is not foolproof; it will take the - * 8 and 9 digits under some circumstances. We'll just have to live with it. - */ - { - const unsigned int mask = (unsigned int) strtol(optarg, NULL, 8); - if (mask > 07777) { - bb_perror_msg_and_die("bad umask value"); - } - umask(mask); - } - break; - case 'a': /* Pass an argument to the programs */ - /* Add an argument to the commands that we will call. - * Called once for every argument. */ - args = xrealloc(args, (argcount + 2) * (sizeof(char *))); - args[argcount++] = optarg; - break; - default: - bb_show_usage(); + /* Enable test mode */ + case 't': + test_mode++; + break; + /* Set the umask of the programs executed */ + case 'u': + /* Check and set the umask of the program executed. As stated in the original + * run-parts, the octal conversion in libc is not foolproof; it will take the + * 8 and 9 digits under some circumstances. We'll just have to live with it. + */ + umask(bb_xgetlarg(optarg, 8, 0, 07777)); + break; + /* Pass an argument to the programs */ + case 'a': + /* Add an argument to the commands that we will call. + * Called once for every argument. */ + args = xrealloc(args, (argcount + 2) * (sizeof(char *))); + args[argcount++] = optarg; + break; + default: + bb_show_usage(); } } |