aboutsummaryrefslogtreecommitdiff
path: root/etc
diff options
context:
space:
mode:
Diffstat (limited to 'etc')
-rw-r--r--etc/rc.subr80
1 files changed, 31 insertions, 49 deletions
diff --git a/etc/rc.subr b/etc/rc.subr
index c8534344b850..fbbf5b082bbd 100644
--- a/etc/rc.subr
+++ b/etc/rc.subr
@@ -703,11 +703,10 @@ check_startmsgs()
# If argument has a given prefix, then change the operation as follows:
# Prefix Operation
# ------ ---------
-# debug Enable debugging messages and set rc_debug to yes
-# fast Skip the pid check and set rc_fast and rc_quiet to yes
-# force Skip sanity checks and set ${rcvar} and rc_force to yes
-# one Set ${rcvar} and set rc_one to yes
-# quiet Don't output some diagnostics, and set rc_quiet to yes
+# fast Skip the pid check, and set rc_fast=yes, rc_quiet=yes
+# force Set ${rcvar} to YES, and set rc_force=yes
+# one Set ${rcvar} to YES
+# quiet Don't output some diagnostics, and set rc_quiet=yes
#
# The following globals are used:
#
@@ -857,8 +856,6 @@ check_startmsgs()
# rc_arg Argument to command, after fast/force/one processing
# performed
#
-# rc_debug True if "debug" was provided
-#
# rc_flags Flags to start the default command with.
# Defaults to ${name}_flags, unless overridden
# by $flags from the environment.
@@ -866,11 +863,9 @@ check_startmsgs()
#
# rc_pid PID of command (if appropriate)
#
-# rc_fast Not empty if "fast" was provided
-#
-# rc_force Not empty if "force" was provided
+# rc_fast Not empty if "fast" was provided (q.v.)
#
-# rc_one Not empty if "one" was provided
+# rc_force Not empty if "force" was provided (q.v.)
#
# rc_quiet Not empty if "quiet" was provided
#
@@ -889,47 +884,34 @@ run_rc_command()
shift 1
rc_extra_args="$*"
- : ${rc_debug:=no} ${rc_fast:=no} ${rc_force:=no} ${rc_one:=no} ${rc_quiet:=no}
- while :; do
- case "$rc_arg" in
- debug*) # "debug" prefix; enable debugging
- rc_debug=yes
- rc_quiet=no
- rc_arg=${rc_arg#debug}
- _rc_prefix="${_rc_prefix}debug"
- ;;
- fast*) # "fast" prefix; don't check pid
- rc_fast=yes
- rc_quiet=yes
- rc_arg=${rc_arg#fast}
- _rc_prefix="${_rc_prefix}fast"
- ;;
- force*) # "force" prefix; always run
- rc_force=yes
- rc_arg=${rc_arg#force}
- _rc_prefix="${_rc_prefix}force"
- ;;
- one*) # "one" prefix; set ${rcvar}=yes
- rc_one=yes
- rc_arg=${rc_arg#one}
- _rc_prefix="${_rc_prefix}one"
- ;;
- quiet*) # "quiet" prefix; omit some messages
- rc_quiet=yes
- rc_arg=${rc_arg#quiet}
- _rc_prefix="${_rc_prefix}quiet"
- ;;
- *)
- break
- ;;
- esac
- done
- if checkyesno rc_force || checkyesno rc_one ; then
+ _rc_prefix=
+ case "$rc_arg" in
+ fast*) # "fast" prefix; don't check pid
+ rc_arg=${rc_arg#fast}
+ rc_fast=yes
+ rc_quiet=yes
+ ;;
+ force*) # "force" prefix; always run
+ rc_force=yes
+ _rc_prefix=force
+ rc_arg=${rc_arg#${_rc_prefix}}
if [ -n "${rcvar}" ]; then
eval ${rcvar}=YES
fi
- fi
- debug "_rc_prefix=${_rc_prefix}"
+ ;;
+ one*) # "one" prefix; set ${rcvar}=yes
+ _rc_prefix=one
+ rc_arg=${rc_arg#${_rc_prefix}}
+ if [ -n "${rcvar}" ]; then
+ eval ${rcvar}=YES
+ fi
+ ;;
+ quiet*) # "quiet" prefix; omit some messages
+ _rc_prefix=quiet
+ rc_arg=${rc_arg#${_rc_prefix}}
+ rc_quiet=yes
+ ;;
+ esac
eval _override_command=\$${name}_program
command=${_override_command:-$command}