mirror of
https://github.com/alexbelgium/hassio-addons.git
synced 2026-05-31 04:44:05 +02:00
config selection logic fix
This commit is contained in:
@@ -42,28 +42,26 @@ fi
|
|||||||
echo -e "${openvpn_username}\n${openvpn_password}" > "${OPENVPN_STATE_DIR}/credentials.conf"
|
echo -e "${openvpn_username}\n${openvpn_password}" > "${OPENVPN_STATE_DIR}/credentials.conf"
|
||||||
chmod 600 "${OPENVPN_STATE_DIR}/credentials.conf"
|
chmod 600 "${OPENVPN_STATE_DIR}/credentials.conf"
|
||||||
|
|
||||||
if bashio::config.has_value 'openvpn_config'; then
|
openvpn_config="$(bashio::config 'openvpn_config')"
|
||||||
openvpn_config="$(bashio::config 'openvpn_config')"
|
openvpn_config="${openvpn_config##*/}"
|
||||||
openvpn_config="${openvpn_config##*/}"
|
if [[ -z "${openvpn_config}" ]]; then
|
||||||
if [[ -z "${openvpn_config}" ]]; then
|
bashio::log.info 'openvpn_config option left empty. Attempting automatic selection.'
|
||||||
bashio::log.info 'openvpn_config option left empty. Attempting automatic selection.'
|
mapfile -t configs < <(find /config/openvpn -maxdepth 1 \( -type f -name '*.conf' -o -name '*.ovpn' \) -print)
|
||||||
mapfile -t configs < <(find /config/openvpn -maxdepth 1 \( -type f -name '*.conf' -o -name '*.ovpn' \) -print)
|
if [ "${#configs[@]}" -eq 0 ]; then
|
||||||
if [ "${#configs[@]}" -eq 0 ]; then
|
bashio::exit.nok 'OpenVPN is enabled but no .conf or .ovpn file was found in /config/openvpn.'
|
||||||
bashio::exit.nok 'OpenVPN is enabled but no .conf or .ovpn file was found in /config/openvpn.'
|
elif [ "${#configs[@]}" -eq 1 ]; then
|
||||||
elif [ "${#configs[@]}" -eq 1 ]; then
|
openvpn_config="${configs[0]}"
|
||||||
openvpn_config="${configs[0]}"
|
bashio::log.info "OpenVPN configuration not specified. Using ${openvpn_config##*/}."
|
||||||
bashio::log.info "OpenVPN configuration not specified. Using ${openvpn_config##*/}."
|
elif bashio::fs.file_exists '/config/openvpn/config.conf'; then
|
||||||
elif bashio::fs.file_exists '/config/openvpn/config.conf'; then
|
openvpn_config='/config/openvpn/config.conf'
|
||||||
openvpn_config='/config/openvpn/config.conf'
|
bashio::log.info 'Using default OpenVPN configuration config.conf.'
|
||||||
bashio::log.info 'Using default OpenVPN configuration config.conf.'
|
|
||||||
else
|
|
||||||
bashio::exit.nok "Multiple OpenVPN configuration files detected. Please set the 'openvpn_config' option."
|
|
||||||
fi
|
|
||||||
elif bashio::fs.file_exists "/config/openvpn/${openvpn_config}"; then
|
|
||||||
openvpn_config="/config/openvpn/${openvpn_config}"
|
|
||||||
else
|
else
|
||||||
bashio::exit.nok "OpenVPN configuration '/config/openvpn/${openvpn_config}' not found."
|
bashio::exit.nok "Multiple OpenVPN configuration files detected. Please set the 'openvpn_config' option."
|
||||||
fi
|
fi
|
||||||
|
elif bashio::fs.file_exists "/config/openvpn/${openvpn_config}"; then
|
||||||
|
openvpn_config="/config/openvpn/${openvpn_config}"
|
||||||
|
else
|
||||||
|
bashio::exit.nok "OpenVPN configuration '/config/openvpn/${openvpn_config}' not found."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
interface_name="$(sed -n "/^dev tun/p" "${openvpn_config}" | awk -F' ' '{print $2}')"
|
interface_name="$(sed -n "/^dev tun/p" "${openvpn_config}" | awk -F' ' '{print $2}')"
|
||||||
|
|||||||
@@ -25,28 +25,26 @@ bashio::log.info "------------------------------"
|
|||||||
bashio::log.info "Wireguard enabled, configuring"
|
bashio::log.info "Wireguard enabled, configuring"
|
||||||
bashio::log.info "------------------------------"
|
bashio::log.info "------------------------------"
|
||||||
|
|
||||||
if bashio::config.has_value 'wireguard_config'; then
|
wireguard_config="$(bashio::config 'wireguard_config')"
|
||||||
wireguard_config="$(bashio::config 'wireguard_config')"
|
wireguard_config="${wireguard_config##*/}"
|
||||||
wireguard_config="${wireguard_config##*/}"
|
if [[ -z "${wireguard_config}" ]]; then
|
||||||
if [[ -z "${wireguard_config}" ]]; then
|
bashio::log.info 'wireguard_config option left empty. Attempting automatic selection.'
|
||||||
bashio::log.info 'wireguard_config option left empty. Attempting automatic selection.'
|
mapfile -t configs < <(find /config/wireguard -maxdepth 1 -type f -name '*.conf' -print)
|
||||||
mapfile -t configs < <(find /config/wireguard -maxdepth 1 -type f -name '*.conf' -print)
|
if [ "${#configs[@]}" -eq 0 ]; then
|
||||||
if [ "${#configs[@]}" -eq 0 ]; then
|
bashio::exit.nok 'WireGuard is enabled but no .conf file was found in /config/wireguard.'
|
||||||
bashio::exit.nok 'WireGuard is enabled but no .conf file was found in /config/wireguard.'
|
elif [ "${#configs[@]}" -eq 1 ]; then
|
||||||
elif [ "${#configs[@]}" -eq 1 ]; then
|
wireguard_config="${configs[0]}"
|
||||||
wireguard_config="${configs[0]}"
|
bashio::log.info "WireGuard configuration not specified. Using ${wireguard_config##*/}."
|
||||||
bashio::log.info "WireGuard configuration not specified. Using ${wireguard_config##*/}."
|
elif bashio::fs.file_exists '/config/wireguard/config.conf'; then
|
||||||
elif bashio::fs.file_exists '/config/wireguard/config.conf'; then
|
wireguard_config='/config/wireguard/config.conf'
|
||||||
wireguard_config='/config/wireguard/config.conf'
|
bashio::log.info 'Using default WireGuard configuration config.conf.'
|
||||||
bashio::log.info 'Using default WireGuard configuration config.conf.'
|
|
||||||
else
|
|
||||||
bashio::exit.nok "Multiple WireGuard configuration files detected. Please set the 'wireguard_config' option."
|
|
||||||
fi
|
|
||||||
elif bashio::fs.file_exists "/config/wireguard/${wireguard_config}"; then
|
|
||||||
wireguard_config="/config/wireguard/${wireguard_config}"
|
|
||||||
else
|
else
|
||||||
bashio::exit.nok "WireGuard configuration '/config/wireguard/${wireguard_config}' not found."
|
bashio::exit.nok "Multiple WireGuard configuration files detected. Please set the 'wireguard_config' option."
|
||||||
fi
|
fi
|
||||||
|
elif bashio::fs.file_exists "/config/wireguard/${wireguard_config}"; then
|
||||||
|
wireguard_config="/config/wireguard/${wireguard_config}"
|
||||||
|
else
|
||||||
|
bashio::exit.nok "WireGuard configuration '/config/wireguard/${wireguard_config}' not found."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
interface_name="$(basename "${wireguard_config}" .conf)"
|
interface_name="$(basename "${wireguard_config}" .conf)"
|
||||||
|
|||||||
Reference in New Issue
Block a user