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