From 5c52e5beb588d87b1e267d0485b56a2609b5481f Mon Sep 17 00:00:00 2001
From: Roy Marples <roy@marples.name>
Date: Sat, 20 Feb 2010 21:48:06 +0000
Subject: Fix rc_${rc_svcname}_need. Display config depends in service depend
 function also.

---
 sh/gendepends.sh.in   | 20 ++------------------
 sh/rc-functions.sh.in | 21 +++++++++++++++++++++
 sh/runscript.sh.in    |  8 +++++++-
 3 files changed, 30 insertions(+), 19 deletions(-)

(limited to 'sh')

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
-- 
cgit v1.2.3