1118515Smtm#!/bin/sh
2118515Smtm#
3118515Smtm# $FreeBSD$
4118515Smtm#
5118515Smtm
6118515Smtm# PROVIDE: localpkg
7118515Smtm# REQUIRE: abi
8118515Smtm# BEFORE:  securelevel
9136224Smtm# KEYWORD: shutdown
10118515Smtm
11118515Smtm. /etc/rc.subr
12118515Smtm
13118515Smtmname="localpkg"
14298514Slmedesc="Run local init scripts"
15132716Seikstart_cmd="pkg_start"
16132716Seikstop_cmd="pkg_stop"
17118515Smtm
18132716Seikpkg_start()
19132597Smtm{
20179927Smtm	local initdone
21179927Smtm
22132716Seik	# For each dir in $local_startup, search for init scripts matching *.sh
23132597Smtm	#
24118515Smtm	case ${local_startup} in
25118515Smtm	[Nn][Oo] | '')
26118515Smtm		;;
27118515Smtm	*)
28179927Smtm		initdone=
29153027Sdougb		find_local_scripts_old
30153027Sdougb		for script in ${zlist} ${slist}; do
31179927Smtm			if [ -z "${initdone}" -a -f "${script}" ]; then
32179927Smtm				echo -n 'Local package initialization:'
33179927Smtm				initdone=yes
34179927Smtm			fi
35118515Smtm			if [ -x "${script}" ]; then
36118515Smtm				(set -T
37118515Smtm				trap 'exit 1' 2
38118515Smtm				${script} start)
39118515Smtm			elif [ -f "${script}" -o -L "${script}" ]; then
40153027Sdougb				echo -n " (skipping ${script}, not executable)"
41118515Smtm			fi
42118515Smtm		done
43179927Smtm		[ -n "${initdone}" ] && echo '.'
44118515Smtm		;;
45118515Smtm	esac
46118515Smtm}
47118515Smtm
48118515Smtmpkg_stop()
49118515Smtm{
50179927Smtm	local initdone
51179927Smtm
52118515Smtm	case ${local_startup} in
53118515Smtm	[Nn][Oo] | '')
54118515Smtm		;;
55118515Smtm	*)
56179927Smtm		initdone=
57153027Sdougb		find_local_scripts_old
58153027Sdougb		for script in `reverse_list ${slist} ${zlist}`; do
59179927Smtm			if [ -z "${initdone}" -a -f "${script}" ]; then
60179939Smtm				echo -n 'Shutting down local packages:'
61179927Smtm				initdone=yes
62179927Smtm			fi
63118515Smtm			if [ -x "${script}" ]; then
64155566Smatteo				if [ `sysctl -n debug.bootverbose` -eq 1 ]; then
65155566Smatteo					echo "==>" ${script}
66155566Smatteo				fi
67118515Smtm				(set -T
68118515Smtm				trap 'exit 1' 2
69118515Smtm				${script} stop)
70118515Smtm			fi
71118515Smtm		done
72179927Smtm		[ -n "${initdone}" ] && echo '.'
73118515Smtm		;;
74118515Smtm	esac
75118515Smtm}
76118515Smtm
77118515Smtmload_rc_config $name
78132716Seikrun_rc_command "$1"
79