diff options
Diffstat (limited to 'src/usr/local/sbin/read_xml_tag.sh')
-rwxr-xr-x | src/usr/local/sbin/read_xml_tag.sh | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/usr/local/sbin/read_xml_tag.sh b/src/usr/local/sbin/read_xml_tag.sh new file mode 100755 index 0000000..a2d9092 --- /dev/null +++ b/src/usr/local/sbin/read_xml_tag.sh @@ -0,0 +1,32 @@ +#!/bin/sh + +if [ -z "$1" -o -z "$2" ]; then + echo "ERROR: Missing parameters" >&2 + exit 1 +fi + +type="${1}" +path="${2}" +config="${3}" +config=${config:-"/cf/conf/config.xml"} + +if [ ! -f "$config" ]; then + echo "ERROR: Config file not found" >&2 + 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"} + +/usr/local/bin/xmllint --xpath "${type}(//${xml_rootobj}/${path})" ${config} +exit $? |