You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.5 KiB
Bash
59 lines
1.5 KiB
Bash
#!/bin/sh
|
|
|
|
. /lib/functions.sh
|
|
|
|
function logger() {
|
|
command logger -t lh-migration "$@"
|
|
echo "$@" >> /tmp/lh-migration.log
|
|
}
|
|
|
|
function lh_filter() {
|
|
if [ -z "$LINUX_HOST_CONFIG" ]; then
|
|
LINUX_HOST_CONFIG="$(chunk -F - extract_config | gunzip | xml2json)"
|
|
[ -z "$LINUX_HOST_CONFIG" ] && {
|
|
logger "Failed reading LH configuration";
|
|
exit 1;
|
|
}
|
|
fi
|
|
echo "`jsonfilter -s "$LINUX_HOST_CONFIG" -e "$1"`"
|
|
}
|
|
|
|
function lh_config_version() {
|
|
echo "$(lh_filter $.SystemConfig.Config.Version)"
|
|
}
|
|
|
|
function lh_config_deviceType() {
|
|
echo "$(lh_filter $.SystemConfig.Services.System.Baptization.DeviceType)"
|
|
}
|
|
|
|
function lh_config_hostname() {
|
|
echo "$(lh_filter $.SystemConfig.Services.System.Baptization.Hostname)"
|
|
}
|
|
|
|
function lh_iterate_array() {
|
|
local NameSingular="$1"
|
|
local NamePlural="$2"
|
|
local Callback="$3"
|
|
local Context="$4"
|
|
|
|
local Type
|
|
if json_get_type Type "$NameSingular" && [ "$Type" = object ]; then
|
|
json_select "$NameSingular"
|
|
$($Callback $Idx "$Context")
|
|
json_select ..
|
|
else
|
|
if json_get_type Type "$NamePlural" && [ "$Type" = array ]; then
|
|
json_select "$NamePlural"
|
|
local Idx=1
|
|
while json_get_type Type $Idx && [ "$Type" = object ]; do
|
|
json_select $Idx
|
|
$($Callback $Idx "$Context")
|
|
json_select ..
|
|
Idx=$((Idx+1))
|
|
done
|
|
json_select ..
|
|
fi
|
|
fi
|
|
}
|
|
|