From e4121dde007c66ec9e2f4c9ecb4a94d38c5fa6cc Mon Sep 17 00:00:00 2001 From: Renato Botelho Date: Thu, 1 Oct 2015 13:26:03 -0300 Subject: Introduce read_global_var: - Add a new script, read_global_var, that returns the value of any item contained in global array $g - Replace all grep and sed magic from shell scripts --- src/etc/rc | 25 ++++++++----------------- src/etc/rc.firmware_auto | 13 ++----------- src/etc/rc.initial | 13 ++----------- src/etc/rc.php_ini_setup | 27 +++------------------------ src/etc/rc.reboot | 13 ++----------- src/etc/rc.shutdown | 13 ++----------- src/usr/local/sbin/read_global_var | 31 +++++++++++++++++++++++++++++++ src/usr/local/sbin/read_xml_tag.sh | 17 ++++------------- 8 files changed, 54 insertions(+), 98 deletions(-) create mode 100755 src/usr/local/sbin/read_global_var (limited to 'src') diff --git a/src/etc/rc b/src/etc/rc index 22dec60..a0531c9 100755 --- a/src/etc/rc +++ b/src/etc/rc @@ -25,17 +25,9 @@ PLATFORM=`/bin/cat /etc/platform` # Set our current version version=`/bin/cat /etc/version` -globals_inc="/etc/inc/globals.inc" -if [ -f /etc/inc/globals_override.inc ]; then - globals_inc="/etc/inc/globals_override.inc ${globals_inc}" -fi -product=$(cat ${globals_inc} | \ - grep product_name | \ - head -n 1 | \ - sed 's/^.*=>* *//; s/["\;,]*//g') - -# product cannot be blank -product=${product:-"pfSense"} +# Read product_name from $g, defaults to pfSense +# Use php -n here because we are not ready to load extensions yet +product=$(/usr/local/bin/php -n /usr/local/sbin/read_global_var product_name pfSense) # Setup dumpdev/ddb/savecore" echo "Configuring crash dumps..." @@ -148,17 +140,16 @@ if [ "$CDDEVICE" != "" ]; then cdcontrol -f /dev/"$CDDEVICE" eject fi -varrunpath=$(cat ${globals_inc} | \ - grep varrun_path | \ - head -n 1 | \ - sed 's/^.*=>* *//; s/["\;,]*//g') +# Use php -n here because we are not ready to load extensions yet +varrunpath=$(/usr/local/bin/php -n /usr/local/sbin/read_global_var varrun_path "/var/run") if [ "$PLATFORM" = "${product}" ] && [ "${USE_MFS_TMPVAR}" != "true" ]; then /sbin/mdmfs -S -M -s 4m md $varrunpath fi -hideplatform=$(egrep -c 'hideplatform.*=>* *true' ${globals_inc} 2>/dev/null) -if [ "$hideplatform" -gt "0" ]; then +# Use php -n here because we are not ready to load extensions yet +hideplatform=$(/usr/local/bin/php -n /usr/local/sbin/read_global_var hideplatform) +if [ "$hideplatform" = "true" ]; then platformbanner="" # hide the platform else platformbanner=" on the '${PLATFORM}' platform" diff --git a/src/etc/rc.firmware_auto b/src/etc/rc.firmware_auto index 866db66..47ad8c9 100755 --- a/src/etc/rc.firmware_auto +++ b/src/etc/rc.firmware_auto @@ -10,17 +10,8 @@ FMBASEURL=$1 FMFILENAME=$2 FETCHFILENAME=$1/$2 -globals_inc="/etc/inc/globals.inc" -if [ -f /etc/inc/globals_override.inc ]; then - globals_inc="/etc/inc/globals_override.inc ${globals_inc}" -fi -product=$(cat ${globals_inc} | \ - grep product_name | \ - head -n 1 | \ - sed 's/^.*=>* *//; s/["\;,]*//g') - -# product cannot be blank -product=${product:-"pfSense"} +# Read product_name from $g, defaults to pfSense +product=$(/usr/local/sbin/read_global_var product_name pfSense) # wait 5 seconds before beginning sleep 5 diff --git a/src/etc/rc.initial b/src/etc/rc.initial index b6ef02c..3d20ff1 100755 --- a/src/etc/rc.initial +++ b/src/etc/rc.initial @@ -44,17 +44,8 @@ fi /etc/rc.banner -globals_inc="/etc/inc/globals.inc" -if [ -f /etc/inc/globals_override.inc ]; then - globals_inc="/etc/inc/globals_override.inc ${globals_inc}" -fi -product=$(cat ${globals_inc} | \ - grep product_name | \ - head -n 1 | \ - sed 's/^.*=>* *//; s/["\;,]*//g') - -# product cannot be blank -product=${product:-"pfSense"} +# Read product_name from $g, defaults to pfSense +product=$(/usr/local/sbin/read_global_var product_name pfSense) # Check to see if SSH is running. if pgrep -q -a -F /var/run/sshd.pid sshd >/dev/null 2>&1; then diff --git a/src/etc/rc.php_ini_setup b/src/etc/rc.php_ini_setup index 2fd5add..b4038e7 100755 --- a/src/etc/rc.php_ini_setup +++ b/src/etc/rc.php_ini_setup @@ -76,16 +76,7 @@ fi # Set upload directory if [ "$PLATFORM" = "nanobsd" ]; then - globals_inc="/etc/inc/globals.inc" - if [ -f /etc/inc/globals_override.inc ]; then - globals_inc="/etc/inc/globals_override.inc ${globals_inc}" - fi - UPLOADTMPDIR=$(cat ${globals_inc} | \ - grep upload_path | \ - head -n 1 | \ - sed 's/^.*=>* *//; s/["\;,]*//g') - - UPLOADTMPDIR=${UPLOADTMPDIR:-"/root"} + UPLOADTMPDIR=$(/usr/local/sbin/read_global_var upload_path "/root") else UPLOADTMPDIR="/tmp" fi @@ -177,20 +168,8 @@ if [ -z "${TIMEZONE}" ]; then fi if [ -z "${TIMEZONE}" ]; then - # Last option, use default value - globals_inc="/etc/inc/globals.inc" - if [ -f /etc/inc/globals_override.inc ]; then - globals_inc="/etc/inc/globals_override.inc ${globals_inc}" - fi - TIMEZONE=$(cat ${globals_inc} | \ - grep default_timezone | \ - head -n 1 | \ - sed 's/^.*=>* *//; s/["\;,]*//g') -fi - -if [ -z "${TIMEZONE}" ]; then - # It it's still blank, lets avoid PHP errors - TIMEZONE="Etc/UTC" + # Last option, use default value from $g or Etc/UTC + TIMEZONE=$(/usr/local/sbin/read_global_var default_timezone "Etc/UTC") fi # Get a loaded module list in the stock php diff --git a/src/etc/rc.reboot b/src/etc/rc.reboot index 1dae0d2..00169bf 100755 --- a/src/etc/rc.reboot +++ b/src/etc/rc.reboot @@ -9,17 +9,8 @@ fi sleep 1 -globals_inc="/etc/inc/globals.inc" -if [ -f /etc/inc/globals_override.inc ]; then - globals_inc="/etc/inc/globals_override.inc ${globals_inc}" -fi -product=$(cat ${globals_inc} | \ - grep product_name | \ - head -n 1 | \ - sed 's/^.*=>* *//; s/["\;,]*//g') - -# product cannot be blank -product=${product:-"pfSense"} +# Read product_name from $g, defaults to pfSense +product=$(/usr/local/sbin/read_global_var product_name pfSense) # If PLATFORM is $product then remove # temporary files on shutdown from /tmp/ diff --git a/src/etc/rc.shutdown b/src/etc/rc.shutdown index 55133f0..dec0267 100755 --- a/src/etc/rc.shutdown +++ b/src/etc/rc.shutdown @@ -5,17 +5,8 @@ if ! /usr/bin/lockf -s -t 30 /tmp/config.lock /usr/bin/true; then exit -1 fi -globals_inc="/etc/inc/globals.inc" -if [ -f /etc/inc/globals_override.inc ]; then - globals_inc="/etc/inc/globals_override.inc ${globals_inc}" -fi -product=$(cat ${globals_inc} | \ - grep product_name | \ - head -n 1 | \ - sed 's/^.*=>* *//; s/["\;,]*//g') - -# product cannot be blank -product=${product:-"pfSense"} +# Read product_name from $g, defaults to pfSense +product=$(/usr/local/sbin/read_global_var product_name pfSense) echo echo "${product} is now shutting down ..." diff --git a/src/usr/local/sbin/read_global_var b/src/usr/local/sbin/read_global_var new file mode 100755 index 0000000..2ea8462 --- /dev/null +++ b/src/usr/local/sbin/read_global_var @@ -0,0 +1,31 @@ +#!/usr/local/bin/php -f + diff --git a/src/usr/local/sbin/read_xml_tag.sh b/src/usr/local/sbin/read_xml_tag.sh index a2d9092..6a3658f 100755 --- a/src/usr/local/sbin/read_xml_tag.sh +++ b/src/usr/local/sbin/read_xml_tag.sh @@ -15,18 +15,9 @@ if [ ! -f "$config" ]; then exit 1 fi -# Get xml_rootobj -globals_inc="/etc/inc/globals.inc" -if [ -f /etc/inc/globals_override.inc ]; then - globals_inc="/etc/inc/globals_override.inc ${globals_inc}" -fi -xml_rootobj=$(cat ${globals_inc} | \ - grep xml_rootobj | \ - head -n 1 | \ - sed 's/^.*=>* *//; s/["\;,]*//g') - -# defaults to pfsense -xml_rootobj=${product:-"pfsense"} +# Get xml_rootobj, if not defined defaults to pfsense +# Use php -n here because we are not ready to load extensions yet +xml_rootobj=$(/usr/local/bin/php -n /usr/local/sbin/read_global_var xml_rootobj pfsense 2>/dev/null) -/usr/local/bin/xmllint --xpath "${type}(//${xml_rootobj}/${path})" ${config} +/usr/local/bin/xmllint --xpath "${type}(//${xml_rootobj}/${path})" ${config} 2>/dev/null exit $? -- cgit v1.1