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"
14132716Seikstart_cmd="pkg_start"
15132716Seikstop_cmd="pkg_stop"
16118515Smtm
17132716Seikpkg_start()
18132597Smtm{
19179927Smtm	local initdone
20179927Smtm
21132716Seik	# For each dir in $local_startup, search for init scripts matching *.sh
22132597Smtm	#
23118515Smtm	case ${local_startup} in
24118515Smtm	[Nn][Oo] | '')
25118515Smtm		;;
26118515Smtm	*)
27179927Smtm		initdone=
28153027Sdougb		find_local_scripts_old
29153027Sdougb		for script in ${zlist} ${slist}; do
30179927Smtm			if [ -z "${initdone}" -a -f "${script}" ]; then
31179927Smtm				echo -n 'Local package initialization:'
32179927Smtm				initdone=yes
33179927Smtm			fi
34118515Smtm			if [ -x "${script}" ]; then
35118515Smtm				(set -T
36118515Smtm				trap 'exit 1' 2
37118515Smtm				${script} start)
38118515Smtm			elif [ -f "${script}" -o -L "${script}" ]; then
39153027Sdougb				echo -n " (skipping ${script}, not executable)"
40118515Smtm			fi
41118515Smtm		done
42179927Smtm		[ -n "${initdone}" ] && echo '.'
43118515Smtm		;;
44118515Smtm	esac
45118515Smtm}
46118515Smtm
47118515Smtmpkg_stop()
48118515Smtm{
49179927Smtm	local initdone
50179927Smtm
51118515Smtm	case ${local_startup} in
52118515Smtm	[Nn][Oo] | '')
53118515Smtm		;;
54118515Smtm	*)
55179927Smtm		initdone=
56153027Sdougb		find_local_scripts_old
57153027Sdougb		for script in `reverse_list ${slist} ${zlist}`; do
58179927Smtm			if [ -z "${initdone}" -a -f "${script}" ]; then
59179939Smtm				echo -n 'Shutting down local packages:'
60179927Smtm				initdone=yes
61179927Smtm			fi
62118515Smtm			if [ -x "${script}" ]; then
63155566Smatteo				if [ `sysctl -n debug.bootverbose` -eq 1 ]; then
64155566Smatteo					echo "==>" ${script}
65155566Smatteo				fi
66118515Smtm				(set -T
67118515Smtm				trap 'exit 1' 2
68118515Smtm				${script} stop)
69118515Smtm			fi
70118515Smtm		done
71179927Smtm		[ -n "${initdone}" ] && echo '.'
72118515Smtm		;;
73118515Smtm	esac
74118515Smtm}
75118515Smtm
76118515Smtmload_rc_config $name
77132716Seikrun_rc_command "$1"
78