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