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