localpkg revision 118515
1118515Smtm#!/bin/sh
2118515Smtm#
3118515Smtm# $FreeBSD: head/etc/rc.d/localpkg 118515 2003-08-06 00:35:13Z mtm $
4118515Smtm#
5118515Smtm
6118515Smtm# PROVIDE: localpkg
7118515Smtm# REQUIRE: abi
8118515Smtm# BEFORE:  securelevel
9118515Smtm# KEYWORD: FreeBSD shutdown
10118515Smtm
11118515Smtm. /etc/rc.subr
12118515Smtm
13118515Smtmname="localpkg"
14118515Smtmstart_cmd="pkg_start"
15118515Smtmstop_cmd="pkg_stop"
16118515Smtm
17118515Smtmpkg_start()
18118515Smtm{
19118515Smtm	# For each dir in $local_startup, search for init scripts matching *.sh
20118515Smtm	#
21118515Smtm	case ${local_startup} in
22118515Smtm	[Nn][Oo] | '')
23118515Smtm		;;
24118515Smtm	*)
25118515Smtm		echo -n 'Local package initialization:'
26118515Smtm		slist=""
27118515Smtm		if [ -z "${script_name_sep}" ]; then
28118515Smtm			script_name_sep=" "
29118515Smtm		fi
30118515Smtm		for dir in ${local_startup}; do
31118515Smtm			if [ -d "${dir}" ]; then
32118515Smtm				for script in ${dir}/*.sh; do
33118515Smtm					slist="${slist}${script_name_sep}${script}"
34118515Smtm				done
35118515Smtm			fi
36118515Smtm		done
37118515Smtm		script_save_sep="$IFS"
38118515Smtm		IFS="${script_name_sep}"
39118515Smtm		for script in ${slist}; do
40118515Smtm			if [ -x "${script}" ]; then
41118515Smtm				(set -T
42118515Smtm				trap 'exit 1' 2
43118515Smtm				${script} start)
44118515Smtm			elif [ -f "${script}" -o -L "${script}" ]; then
45118515Smtm				echo -n " (skipping ${script##*/}, not executable)"
46118515Smtm			fi
47118515Smtm		done
48118515Smtm		IFS="${script_save_sep}"
49118515Smtm		echo '.'
50118515Smtm		;;
51118515Smtm	esac
52118515Smtm}
53118515Smtm
54118515Smtmpkg_stop()
55118515Smtm{
56118515Smtm	echo -n 'Shutting down daemon processes:'
57118515Smtm
58118515Smtm	# For each dir in $local_startup, search for init scripts matching *.sh
59118515Smtm	case ${local_startup} in
60118515Smtm	[Nn][Oo] | '')
61118515Smtm		;;
62118515Smtm	*)
63118515Smtm		slist=""
64118515Smtm		if [ -z "${script_name_sep}" ]; then
65118515Smtm			script_name_sep=" "
66118515Smtm		fi
67118515Smtm		for dir in ${local_startup}; do
68118515Smtm			if [ -d "${dir}" ]; then
69118515Smtm				for script in ${dir}/*.sh; do
70118515Smtm					slist="${slist}${script_name_sep}${script}"
71118515Smtm				done
72118515Smtm			fi
73118515Smtm		done
74118515Smtm		script_save_sep="$IFS"
75118515Smtm		IFS="${script_name_sep}"
76118515Smtm		for script in `reverse_list ${slist}`; do
77118515Smtm			if [ -x "${script}" ]; then
78118515Smtm				(set -T
79118515Smtm				trap 'exit 1' 2
80118515Smtm				${script} stop)
81118515Smtm			fi
82118515Smtm		done
83118515Smtm		IFS="${script_save_sep}"
84118515Smtm		echo '.'
85118515Smtm		;;
86118515Smtm	esac
87118515Smtm}
88118515Smtm
89118515Smtmload_rc_config $name
90118515Smtmrun_rc_command "$1"
91