diff options
Diffstat (limited to 'sh')
| -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  | 
