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