#!/bin/bash # # Shorewall Packet Filtering Firewall RPM configuration program - V4.5 # # This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt] # # (c) 2012 - Tom Eastep (teastep@shorewall.net) # # Shorewall documentation is available at http://www.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. # # Usage: ./configure <option>=<setting> ... # # ################################################################################################ declare -A params declare -A options getfileparams() { while read option; do case $option in \#*) ;; *) on=${option%=*} ov=${option#*=} ov=${ov%#*} [ -n "$on" ] && options[${on}]="${ov}" ;; esac done return 0 } if [ $# -eq 0 ]; then echo "Usage: $0 <var>=<val> ..." >&2 exit 1 fi for p in $@; do p=${p#--} if [ -n "${p}" ]; then declare -u pn pn=${p%=*} pv=${p#*=} if [ -n "${pn}" ]; then case ${pn} in VENDOR) pn=HOST ;; SHAREDSTATEDIR) pn=VARDIR ;; DATADIR) pn=SHAREDIR ;; SYSCONFDIR) pn=CONFDIR ;; esac params[${pn}]="${pv}" fi fi done vendor=${params[HOST]} if [ -z "$vendor" ]; then rcfile=shorewallrc.default vendor=linux else rcfile=shorewallrc.$vendor fi getfileparams < $rcfile || exit 1 for p in ${!params[@]}; do options[${p}]="${params[${p}]}" options[${p}]="${params[${p}]}" done echo "HOST=$vendor" > shorewallrc for on in \ PREFIX \ SHAREDIR \ LIBEXECDIR \ PERLLIBDIR \ CONFDIR \ SBINDIR \ MANDIR \ INITDIR \ INITSOURCE \ INITFILE \ AUXINITSOURCE \ AUXINITFILE \ SYSTEMD \ SYSCONFFILE \ SYSCONFDIR \ ANNOTATED \ VARDIR do echo "$on=${options[${on}]}" >> shorewallrc done cat shorewallrc