summaryrefslogtreecommitdiffstats
path: root/src/usr/local/sbin/read_xml_tag.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/local/sbin/read_xml_tag.sh')
-rwxr-xr-xsrc/usr/local/sbin/read_xml_tag.sh32
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 $?
OpenPOWER on IntegriCloud