xref: /freebsd/libexec/rc/rc.d/localpkg (revision f99f0ee14e3af81c23150a6a340259ca8a33d01a)
10696600cSBjoern A. Zeeb#!/bin/sh
20696600cSBjoern A. Zeeb#
30696600cSBjoern A. Zeeb#
40696600cSBjoern A. Zeeb
50696600cSBjoern A. Zeeb# PROVIDE: localpkg
6028af4aeSEdward Tomasz Napierala# REQUIRE: sysvipc linux
70696600cSBjoern A. Zeeb# BEFORE:  securelevel
80696600cSBjoern A. Zeeb# KEYWORD: shutdown
90696600cSBjoern A. Zeeb
100696600cSBjoern A. Zeeb. /etc/rc.subr
110696600cSBjoern A. Zeeb
120696600cSBjoern A. Zeebname="localpkg"
130696600cSBjoern A. Zeebdesc="Run local init scripts"
140696600cSBjoern A. Zeebstart_cmd="pkg_start"
150696600cSBjoern A. Zeebstop_cmd="pkg_stop"
160696600cSBjoern A. Zeeb
170696600cSBjoern A. Zeebpkg_start()
180696600cSBjoern A. Zeeb{
190696600cSBjoern A. Zeeb	local initdone
200696600cSBjoern A. Zeeb
210696600cSBjoern A. Zeeb	# For each dir in $local_startup, search for init scripts matching *.sh
220696600cSBjoern A. Zeeb	#
230696600cSBjoern A. Zeeb	case ${local_startup} in
240696600cSBjoern A. Zeeb	[Nn][Oo] | '')
250696600cSBjoern A. Zeeb		;;
260696600cSBjoern A. Zeeb	*)
270696600cSBjoern A. Zeeb		initdone=
280696600cSBjoern A. Zeeb		find_local_scripts_old
290696600cSBjoern A. Zeeb		for script in ${zlist} ${slist}; do
300696600cSBjoern A. Zeeb			if [ -z "${initdone}" -a -f "${script}" ]; then
310696600cSBjoern A. Zeeb				echo -n 'Local package initialization:'
320696600cSBjoern A. Zeeb				initdone=yes
330696600cSBjoern A. Zeeb			fi
340696600cSBjoern A. Zeeb			if [ -x "${script}" ]; then
350696600cSBjoern A. Zeeb				(set -T
360696600cSBjoern A. Zeeb				trap 'exit 1' 2
370696600cSBjoern A. Zeeb				${script} start)
380696600cSBjoern A. Zeeb			elif [ -f "${script}" -o -L "${script}" ]; then
390696600cSBjoern A. Zeeb				echo -n " (skipping ${script}, not executable)"
400696600cSBjoern A. Zeeb			fi
410696600cSBjoern A. Zeeb		done
420696600cSBjoern A. Zeeb		[ -n "${initdone}" ] && echo '.'
430696600cSBjoern A. Zeeb		;;
440696600cSBjoern A. Zeeb	esac
450696600cSBjoern A. Zeeb}
460696600cSBjoern A. Zeeb
470696600cSBjoern A. Zeebpkg_stop()
480696600cSBjoern A. Zeeb{
490696600cSBjoern A. Zeeb	local initdone
500696600cSBjoern A. Zeeb
510696600cSBjoern A. Zeeb	case ${local_startup} in
520696600cSBjoern A. Zeeb	[Nn][Oo] | '')
530696600cSBjoern A. Zeeb		;;
540696600cSBjoern A. Zeeb	*)
550696600cSBjoern A. Zeeb		initdone=
560696600cSBjoern A. Zeeb		find_local_scripts_old
570696600cSBjoern A. Zeeb		for script in `reverse_list ${slist} ${zlist}`; do
580696600cSBjoern A. Zeeb			if [ -z "${initdone}" -a -f "${script}" ]; then
590696600cSBjoern A. Zeeb				echo -n 'Shutting down local packages:'
600696600cSBjoern A. Zeeb				initdone=yes
610696600cSBjoern A. Zeeb			fi
620696600cSBjoern A. Zeeb			if [ -x "${script}" ]; then
630696600cSBjoern A. Zeeb				if [ `sysctl -n debug.bootverbose` -eq 1 ]; then
640696600cSBjoern A. Zeeb					echo "==>" ${script}
650696600cSBjoern A. Zeeb				fi
660696600cSBjoern A. Zeeb				(set -T
670696600cSBjoern A. Zeeb				trap 'exit 1' 2
680696600cSBjoern A. Zeeb				${script} stop)
69*f99f0ee1SAlexander Leidinger			elif [ -f "${script}" -o -L "${script}" ]; then
70*f99f0ee1SAlexander Leidinger				echo -n " (skipping ${script##*/}, not executable)"
710696600cSBjoern A. Zeeb			fi
720696600cSBjoern A. Zeeb		done
730696600cSBjoern A. Zeeb		[ -n "${initdone}" ] && echo '.'
740696600cSBjoern A. Zeeb		;;
750696600cSBjoern A. Zeeb	esac
760696600cSBjoern A. Zeeb}
770696600cSBjoern A. Zeeb
780696600cSBjoern A. Zeebload_rc_config $name
79*f99f0ee1SAlexander Leidinger
80*f99f0ee1SAlexander Leidinger# doesn't make sense to run in a svcj: other rc.d scripts need to decide on their own
81*f99f0ee1SAlexander Leidingerlocalpkg_svcj="NO"
82*f99f0ee1SAlexander Leidinger
830696600cSBjoern A. Zeebrun_rc_command "$1"
84