#! /bin/sh # rc - OSSP Runcommand processor # Copyright (c) 2002 Cable & Wireless Deutschland GmbH # Copyright (c) 2002 The OSSP Project # Copyright (c) 2002 Ralf S. Engelschall # # This file is part of OSSP rc, a portable Runcommand processor # which can be found at http://www.ossp.org/pkg/rc/ # # Permission to use, copy, modify, and distribute this software for # any purpose with or without fee is hereby granted, provided that # the above copyright notice and this permission notice appear in all # copies. # # THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. # IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF # USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT # OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # test_rc.sh: Runcommand processor test script #Pre: #tar zxvf ossprc-0.9.tar.gz #cd ossprc-0.9 #./configure #make #su #make install #export OSSP_RC_ROOT=/etc/ossprc/ # #Assume: #Installed program 'mycom' in /usr/local/bin/mycom #Valid OSSP run command file rc.mycom in /etc/ossprc/rc.d #File rc.mycom contains the sections start, sync, and restart # #Begin: #$ rc mycom start sync restart # #Output: # #Post: # #Procedure: # #foreach sec in
[
...] { # foreach dir in --dir=dir1:dir2:.. { # search for --rcfile where %s is # parse rcfile into blocks according to --regex-section/etc. # remember common/
into list # } # // we now have an unsorted list of common/
# sort list of common/
according to their priority (see --regex-param) # # // execution # forearch common/
in list { # prepend config section # prepend common section # expand references accordingf to --regex-reference # execute result as user/group (see --regex-param) with interpreter (see --regex-param) # } #} #