#!/bin/sh # # Shorewall 4.4 -- /usr/share/shorewall/lib.run. # # This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt] # # (c) 2010 - Tom Eastep (teastep@shorewall.net) # # Complete documentation is available at http://shorewall.net # # This program is free software; you can redistribute it and/or modify # it under the terms of Version 2 of the GNU General Public License # as published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # This library contains the wrapper code for running a generated script. # # # Get the Shorewall version of the passed script # get_script_version() { # $1 = script local temp local version local ifs temp=$( $SHOREWALL_SHELL $1 version | sed 's/-.*//' ) if [ $? -ne 0 ]; then version=0 else ifs=$IFS IFS=. temp=$(echo $temp) IFS=$ifs for temp in $temp; do version=${version}$(printf '%02d' $temp) done fi echo $version } # # Do required exports or create the required option string and run the passed script using # $SHOREWALL_SHELL # run_it() { local script local options local version export VARDIR script=$1 shift version=$(get_script_version $script) if [ $version -lt 040408 ]; then # # Old script that doesn't understand 4.4.8 script options # export RESTOREFILE export VERBOSITY export NOROUTES=$g_noroutes export PURGE=$g_purge export TIMESTAMP=$g_timestamp export RECOVERING=$g_recovering if [ "$g_product" != Shorewall ]; then # # Shorewall Lite # export LOGFORMAT export IPTABLES fi else # # 4.4.8 or later -- no additional exports required # options='-' [ -n "$g_noroutes" ] && options=${options}n [ -n "$g_timestamp" ] && options=${options}t [ -n "$g_purge" ] && options=${options}p [ -n "$g_recovering" ] && options=${options}r options="${options}V $VERBOSITY" [ -n "$RESTOREFILE" ] && options="${options} -R $RESTOREFILE" fi $SHOREWALL_SHELL $script $options $@ } ################################################################################# # End of lib.run #################################################################################