aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sh/gendepends.sh.in20
-rw-r--r--sh/rc-functions.sh.in21
-rw-r--r--sh/runscript.sh.in8
3 files changed, 30 insertions, 19 deletions
diff --git a/sh/gendepends.sh.in b/sh/gendepends.sh.in
index 98443b62..95a7b481 100644
--- a/sh/gendepends.sh.in
+++ b/sh/gendepends.sh.in
@@ -5,6 +5,7 @@
# All rights reserved. Released under the 2-clause BSD license.
. @SYSCONFDIR@/init.d/functions.sh
+. @LIBEXECDIR@/sh/rc-functions.sh
config() {
[ -n "$*" ] && echo "$RC_SVCNAME config $*" >&3
@@ -82,24 +83,7 @@ do
if . "$_dir/$RC_SVCNAME"; then
echo "$RC_SVCNAME" >&3
- depend
- _rc_svcname=$(shell_var "$RC_SVCNAME")
-
- # Add any user defined depends
- for _deptype in config:CONFIG need:NEED use:USE \
- after:AFTER before:BEFORE \
- provide:PROVIDE keyword:KEYWORD; do
- IFS=:
- set -- $_deptype
- unset IFS
- eval _depends=\$rc_$_rc_svcname_$1
- [ -z "$_depends" ] && eval _depends=\$rc_$1
- [ -z "$_depends" ] && \
- eval _depends=\$RC_$_rc_svcname_$2
- [ -z "$_depends" ] && eval _depends=\$RC_$2
-
- $1 ${_depends}
- done
+ _depend
fi
)
done
diff --git a/sh/rc-functions.sh.in b/sh/rc-functions.sh.in
index 2a656bc8..ee9c9833 100644
--- a/sh/rc-functions.sh.in
+++ b/sh/rc-functions.sh.in
@@ -84,6 +84,27 @@ get_bootparam()
return 1
}
+# Called from runscript.sh or gendepends.sh
+_depend() {
+ depend
+ local _rc_svcname=$(shell_var "$RC_SVCNAME") _deptype= _depends=
+
+ # Add any user defined depends
+ for _deptype in config:CONFIG need:NEED use:USE \
+ after:AFTER before:BEFORE \
+ provide:PROVIDE keyword:KEYWORD; do
+ IFS=:
+ set -- $_deptype
+ unset IFS
+ eval _depends=\$rc_${_rc_svcname}_$1
+ [ -z "$_depends" ] && eval _depends=\$rc_$1
+ [ -z "$_depends" ] && eval _depends=\$RC_${_rc_svcname}_$2
+ [ -z "$_depends" ] && eval _depends=\$RC_$2
+
+ $1 $_depends
+ done
+}
+
# Add our sbin to $PATH
case "$PATH" in
"$RC_LIBEXECDIR"/sbin|"$RC_LIBEXECDIR"/sbin:*);;
diff --git a/sh/runscript.sh.in b/sh/runscript.sh.in
index 4c60a1bb..3d7252a6 100644
--- a/sh/runscript.sh.in
+++ b/sh/runscript.sh.in
@@ -187,8 +187,14 @@ done
unset _f
while [ -n "$1" ]; do
+ # Sepcial case depend
+ if [ "$1" = depend ]; then
+ shift
+ _depend
+ continue
+ fi
# See if we have the required function and run it
- for _cmd in describe start stop status depend ${extra_commands:-$opts} \
+ for _cmd in describe start stop status ${extra_commands:-$opts} \
$extra_started_commands
do
if [ "$_cmd" = "$1" ]; then