Files
homeassistant-addons/adsb-multi-portal-feeder/export-env-from-config.sh
2022-03-29 23:34:54 +02:00

32 lines
1.2 KiB
Bash

#!/bin/bash
#
# As Home Assistant parses the Add-On configuration towards /data/options.json
# we want all its values as environment variables.
#
# This needs to be sourced ($ source $0)
CONFIG=$(curl -s -H "Authorization: Bearer ${SUPERVISOR_TOKEN}" -H "Content-Type: application/json" http://supervisor/core/api/config)
LAT=$(echo $CONFIG | jq '.latitude')
LON=$(echo $CONFIG | jq '.longitude')
ELE=$(echo $CONFIG | jq '.elevation')
# TODO: Find a way to use bashio and source together
if [ ! -f '/data/options.json' ]; then
echo 'ERROR: /data/options.json not found' >>/dev/stderr
exit 1
fi
# export add-on configuration so it can be sourced and used as env vars later
# thx https://stackoverflow.com/a/48513046/635876
while read -rd $'' line
do
if [[ $line == *"HOMEASSISTANT_LATITUDE" ]] || [[ $line == *"HOMEASSISTANT_LONGITUDE" ]] || [[ $line == *"HOMEASSISTANT_ELEVATION" ]]; then
line=$(echo $line | sed "s/HOMEASSISTANT_LATITUDE/$LAT/")
line=$(echo $line | sed "s/HOMEASSISTANT_LONGITUDE/$LON/")
line=$(echo $line | sed "s/HOMEASSISTANT_ELEVATION/$ELE/")
fi
# echo $line
export "$line"
done < <(jq -r <<<"$(cat /data/options.json)" \
'to_entries|map("\(.key)=\(.value)\u0000")[]')