summaryrefslogtreecommitdiff
path: root/debianutils
diff options
context:
space:
mode:
Diffstat (limited to 'debianutils')
-rw-r--r--debianutils/Config.in8
-rw-r--r--debianutils/Makefile.in1
-rw-r--r--debianutils/run_parts.c56
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();
}
}