#!/usr/bin/with-contenv bashio
# ==============================================================================
# Community Hass.io Add-ons: ESPHome
# Runs the ESPHome dashboard
# ==============================================================================

export ESPHOME_IS_HA_ADDON=true

if bashio::config.true 'leave_front_door_open'; then
    export DISABLE_HA_AUTHENTICATION=true
fi

if bashio::config.true 'streamer_mode'; then
    export ESPHOME_STREAMER_MODE=true
fi

if bashio::config.true 'status_use_ping'; then
    export ESPHOME_DASHBOARD_USE_PING=true
fi

if bashio::config.has_value 'relative_url'; then
    export ESPHOME_DASHBOARD_RELATIVE_URL=$(bashio::config 'relative_url')
fi

pio_cache_base=/data/cache/platformio
# we can't set core_dir, because the settings file is stored in `core_dir/appstate.json`
# setting `core_dir` would therefore prevent pio from accessing
export PLATFORMIO_PLATFORMS_DIR="${pio_cache_base}/platforms"
export PLATFORMIO_PACKAGES_DIR="${pio_cache_base}/packages"
export PLATFORMIO_CACHE_DIR="${pio_cache_base}/cache"

export PLATFORMIO_GLOBALLIB_DIR=/piolibs

bashio::log.info "Starting ESPHome dashboard..."
exec esphome dashboard /config/esphome --socket /var/run/esphome.sock --ha-addon
