1*0696600cSBjoern A. Zeeb#!/bin/sh 2*0696600cSBjoern A. Zeeb# 3*0696600cSBjoern A. Zeeb# $FreeBSD$ 4*0696600cSBjoern A. Zeeb# 5*0696600cSBjoern A. Zeeb 6*0696600cSBjoern A. Zeeb# PROVIDE: localpkg 7*0696600cSBjoern A. Zeeb# REQUIRE: abi 8*0696600cSBjoern A. Zeeb# BEFORE: securelevel 9*0696600cSBjoern A. Zeeb# KEYWORD: shutdown 10*0696600cSBjoern A. Zeeb 11*0696600cSBjoern A. Zeeb. /etc/rc.subr 12*0696600cSBjoern A. Zeeb 13*0696600cSBjoern A. Zeebname="localpkg" 14*0696600cSBjoern A. Zeebdesc="Run local init scripts" 15*0696600cSBjoern A. Zeebstart_cmd="pkg_start" 16*0696600cSBjoern A. Zeebstop_cmd="pkg_stop" 17*0696600cSBjoern A. Zeeb 18*0696600cSBjoern A. Zeebpkg_start() 19*0696600cSBjoern A. Zeeb{ 20*0696600cSBjoern A. Zeeb local initdone 21*0696600cSBjoern A. Zeeb 22*0696600cSBjoern A. Zeeb # For each dir in $local_startup, search for init scripts matching *.sh 23*0696600cSBjoern A. Zeeb # 24*0696600cSBjoern A. Zeeb case ${local_startup} in 25*0696600cSBjoern A. Zeeb [Nn][Oo] | '') 26*0696600cSBjoern A. Zeeb ;; 27*0696600cSBjoern A. Zeeb *) 28*0696600cSBjoern A. Zeeb initdone= 29*0696600cSBjoern A. Zeeb find_local_scripts_old 30*0696600cSBjoern A. Zeeb for script in ${zlist} ${slist}; do 31*0696600cSBjoern A. Zeeb if [ -z "${initdone}" -a -f "${script}" ]; then 32*0696600cSBjoern A. Zeeb echo -n 'Local package initialization:' 33*0696600cSBjoern A. Zeeb initdone=yes 34*0696600cSBjoern A. Zeeb fi 35*0696600cSBjoern A. Zeeb if [ -x "${script}" ]; then 36*0696600cSBjoern A. Zeeb (set -T 37*0696600cSBjoern A. Zeeb trap 'exit 1' 2 38*0696600cSBjoern A. Zeeb ${script} start) 39*0696600cSBjoern A. Zeeb elif [ -f "${script}" -o -L "${script}" ]; then 40*0696600cSBjoern A. Zeeb echo -n " (skipping ${script}, not executable)" 41*0696600cSBjoern A. Zeeb fi 42*0696600cSBjoern A. Zeeb done 43*0696600cSBjoern A. Zeeb [ -n "${initdone}" ] && echo '.' 44*0696600cSBjoern A. Zeeb ;; 45*0696600cSBjoern A. Zeeb esac 46*0696600cSBjoern A. Zeeb} 47*0696600cSBjoern A. Zeeb 48*0696600cSBjoern A. Zeebpkg_stop() 49*0696600cSBjoern A. Zeeb{ 50*0696600cSBjoern A. Zeeb local initdone 51*0696600cSBjoern A. Zeeb 52*0696600cSBjoern A. Zeeb case ${local_startup} in 53*0696600cSBjoern A. Zeeb [Nn][Oo] | '') 54*0696600cSBjoern A. Zeeb ;; 55*0696600cSBjoern A. Zeeb *) 56*0696600cSBjoern A. Zeeb initdone= 57*0696600cSBjoern A. Zeeb find_local_scripts_old 58*0696600cSBjoern A. Zeeb for script in `reverse_list ${slist} ${zlist}`; do 59*0696600cSBjoern A. Zeeb if [ -z "${initdone}" -a -f "${script}" ]; then 60*0696600cSBjoern A. Zeeb echo -n 'Shutting down local packages:' 61*0696600cSBjoern A. Zeeb initdone=yes 62*0696600cSBjoern A. Zeeb fi 63*0696600cSBjoern A. Zeeb if [ -x "${script}" ]; then 64*0696600cSBjoern A. Zeeb if [ `sysctl -n debug.bootverbose` -eq 1 ]; then 65*0696600cSBjoern A. Zeeb echo "==>" ${script} 66*0696600cSBjoern A. Zeeb fi 67*0696600cSBjoern A. Zeeb (set -T 68*0696600cSBjoern A. Zeeb trap 'exit 1' 2 69*0696600cSBjoern A. Zeeb ${script} stop) 70*0696600cSBjoern A. Zeeb fi 71*0696600cSBjoern A. Zeeb done 72*0696600cSBjoern A. Zeeb [ -n "${initdone}" ] && echo '.' 73*0696600cSBjoern A. Zeeb ;; 74*0696600cSBjoern A. Zeeb esac 75*0696600cSBjoern A. Zeeb} 76*0696600cSBjoern A. Zeeb 77*0696600cSBjoern A. Zeebload_rc_config $name 78*0696600cSBjoern A. Zeebrun_rc_command "$1" 79