1*57718be8SEnji Cooper#! /bin/sh 2*57718be8SEnji Cooper# 3*57718be8SEnji Cooper# $NetBSD: h_args.sh,v 1.1 2010/03/15 19:03:08 jmmv Exp $ 4*57718be8SEnji Cooper# 5*57718be8SEnji Cooper# Copyright (c) 2010 The NetBSD Foundation, Inc. 6*57718be8SEnji Cooper# All rights reserved. 7*57718be8SEnji Cooper# 8*57718be8SEnji Cooper# This code is derived from software contributed to The NetBSD Foundation 9*57718be8SEnji Cooper# by Julio Merino. 10*57718be8SEnji Cooper# 11*57718be8SEnji Cooper# Redistribution and use in source and binary forms, with or without 12*57718be8SEnji Cooper# modification, are permitted provided that the following conditions 13*57718be8SEnji Cooper# are met: 14*57718be8SEnji Cooper# 1. Redistributions of source code must retain the above copyright 15*57718be8SEnji Cooper# notice, this list of conditions and the following disclaimer. 16*57718be8SEnji Cooper# 2. Redistributions in binary form must reproduce the above copyright 17*57718be8SEnji Cooper# notice, this list of conditions and the following disclaimer in the 18*57718be8SEnji Cooper# documentation and/or other materials provided with the distribution. 19*57718be8SEnji Cooper# 20*57718be8SEnji Cooper# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 21*57718be8SEnji Cooper# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 22*57718be8SEnji Cooper# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 23*57718be8SEnji Cooper# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 24*57718be8SEnji Cooper# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 25*57718be8SEnji Cooper# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 26*57718be8SEnji Cooper# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 27*57718be8SEnji Cooper# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 28*57718be8SEnji Cooper# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 29*57718be8SEnji Cooper# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 30*57718be8SEnji Cooper# POSSIBILITY OF SUCH DAMAGE. 31*57718be8SEnji Cooper# 32*57718be8SEnji Cooper 33*57718be8SEnji Cooper# 34*57718be8SEnji Cooper# An rc.d script that overrides all standard comands and adds a non-standard 35*57718be8SEnji Cooper# command. All of them print the set of arguments passed to them and take no 36*57718be8SEnji Cooper# further action. 37*57718be8SEnji Cooper# 38*57718be8SEnji Cooper 39*57718be8SEnji Cooper${_rc_subr_loaded} . /etc/rc.subr 40*57718be8SEnji Cooper 41*57718be8SEnji Coopername="h_args" 42*57718be8SEnji Cooperrcvar="${name}" 43*57718be8SEnji Coopercommand="/usr/bin/true" 44*57718be8SEnji Cooperextra_commands="custom" 45*57718be8SEnji Cooper 46*57718be8SEnji Cooperfor command in start stop restart custom; do 47*57718be8SEnji Cooper eval ${command}_precmd=\'print_args pre${command}\' 48*57718be8SEnji Cooper eval ${command}_cmd=\'print_args ${command}\' 49*57718be8SEnji Cooper eval ${command}_postcmd=\'print_args post${command}\' 50*57718be8SEnji Cooperdone 51*57718be8SEnji Cooper 52*57718be8SEnji Cooperprint_args() { 53*57718be8SEnji Cooper local command="${1}"; shift 54*57718be8SEnji Cooper 55*57718be8SEnji Cooper printf "${command}:" 56*57718be8SEnji Cooper while [ ${#} -gt 0 ]; do 57*57718be8SEnji Cooper printf " >%s<" "${1}" 58*57718be8SEnji Cooper shift 59*57718be8SEnji Cooper done 60*57718be8SEnji Cooper printf ".\n" 61*57718be8SEnji Cooper} 62*57718be8SEnji Cooper 63*57718be8SEnji Cooperload_rc_config "${name}" 64*57718be8SEnji Cooperrun_rc_command "${@}" 65