diff options
-rw-r--r-- | sh/gendepends.sh.in | 20 | ||||
-rw-r--r-- | sh/rc-functions.sh.in | 21 | ||||
-rw-r--r-- | sh/runscript.sh.in | 8 |
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 |