1 #! /bin/sh 2 # 3 # $NetBSD: h_args.sh,v 1.2 2025/09/07 21:31:21 andvar 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 commands 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 41 name="h_args" 42 rcvar="${name}" 43 command="/usr/bin/true" 44 extra_commands="custom" 45 46 for 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}\' 50 done 51 52 print_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 63 load_rc_config "${name}" 64 run_rc_command "${@}" 65