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

#!/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
}