mirror of
https://github.com/alexbelgium/hassio-addons.git
synced 2026-01-10 09:51:02 +01:00
68 lines
2.3 KiB
Bash
Executable File
68 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/with-contenv bashio
|
|
# shellcheck shell=bash
|
|
|
|
###################################
|
|
# Export all addon options as env #
|
|
###################################
|
|
|
|
# For all keys in options.json
|
|
JSONSOURCE="/data/options.json"
|
|
|
|
# Export keys as env variables
|
|
# echo "All addon options were exported as variables"
|
|
mapfile -t arr < <(jq -r 'keys[]' "${JSONSOURCE}")
|
|
|
|
for KEYS in "${arr[@]}"; do
|
|
# export key
|
|
VALUE=$(jq ."$KEYS" "${JSONSOURCE}")
|
|
VALUE="${VALUE//[\"\']/}"
|
|
line="${KEYS}='${VALUE}'"
|
|
# Check if secret
|
|
if [[ "${line}" == *'!secret '* ]]; then
|
|
echo "secret detected"
|
|
secret=${line#*secret }
|
|
# Check if single match
|
|
secretnum=$(sed -n "/$secret:/=" /config/secrets.yaml)
|
|
[[ "$secretnum" == *' '* ]] && bashio::exit.nok "There are multiple matches for your password name. Please check your secrets.yaml file"
|
|
# Get text
|
|
secret=$(sed -n "/$secret:/p" /config/secrets.yaml)
|
|
secret=${secret#*: }
|
|
line="${line%%=*}='$secret'"
|
|
VALUE="$secret"
|
|
fi
|
|
# text
|
|
if bashio::config.false "verbose" || [[ "${KEYS}" == *"PASS"* ]]; then
|
|
bashio::log.blue "${KEYS}=******"
|
|
else
|
|
bashio::log.blue "$line"
|
|
fi
|
|
|
|
######################################
|
|
# Export the variable to run scripts #
|
|
######################################
|
|
export "${KEYS}='${VALUE}'"
|
|
# set .env
|
|
echo "$KEYS=\"$VALUE\"" >> /.env || true
|
|
# set /etc/environmemt
|
|
mkdir -p /etc
|
|
echo "$KEYS=$VALUE" >> /etc/environmemt
|
|
# For non s6
|
|
if cat /etc/services.d/*/*run* &>/dev/null; then sed -i "1a export $line" /etc/services.d/*/*run* 2>/dev/null; fi
|
|
if cat /etc/cont-init.d/*run* &>/dev/null; then sed -i "1a export $line" /etc/cont-init.d/*run* 2>/dev/null; fi
|
|
# For s6
|
|
if [ -d /var/run/s6/container_environment ]; then printf "%s" "${VALUE}" > /var/run/s6/container_environment/"${KEYS}"; fi
|
|
echo "export ${KEYS}=\"${VALUE}\"" >> ~/.bashrc
|
|
|
|
done
|
|
|
|
################
|
|
# Set timezone #
|
|
################
|
|
set +e
|
|
if [ -n "$TZ" ] && [ -f /etc/localtime ]; then
|
|
if [ -f /usr/share/zoneinfo/"$TZ" ]; then
|
|
echo "Timezone set from $(cat /etc/timezone) to $TZ"
|
|
ln -snf /usr/share/zoneinfo/"$TZ" /etc/localtime && echo "$TZ" >/etc/timezone
|
|
fi
|
|
fi
|