#!/command/with-contenv bashio
# shellcheck shell=bash
# ==============================================================================
# Home Assistant Community Add-on: actrunner
# Runs actrunner script
# ==============================================================================

declare log_level

bashio::log.info 'Starting actrunner...'

journal_path='/var/log/journal'
if ! bashio::fs.directory_exists "${journal_path}" || [ -z "$(ls -A ${journal_path})" ]; then
    bashio::log.info "No journal at ${journal_path}, looking for journal in /run/log/journal instead"
    journal_path='/run/log/journal'
fi

case "$(bashio::config 'log_level')" in \
    trace)      ;& \
    debug)      log_level='debug' ;; \
    notice)     ;& \
    warning)    log_level='warn' ;; \
    error)      ;& \
    fatal)      log_level='error' ;; \
    *)          log_level='info' ;; \
esac;
bashio::log.info "act_runner log level set to ${log_level}"

export "JOURNAL_PATH=${journal_path}"
export "LOG_LEVEL=${log_level}"

# Activate the Ansible virtual environment
source /opt/ansible-venv/bin/activate

bashio::log.info "register act_runner !"

# Load configuration from Home Assistant
GITEA_URL=$(bashio::config 'gitea_url')
GITEA_TOKEN=$(bashio::config 'gitea_token')
RUNNER_NAME=$(bashio::config 'runner_name')
RUNNER_LABEL=$(bashio::config 'runner_label')

exec /usr/local/bin/act_runner register --no-interactive --instance ${GITEA_URL} --token ${GITEA_TOKEN} --name ${RUNNER_NAME} --labels ${RUNNER_LABEL}

bashio::log.info "Handing over control to actrunner..."
exec exec /usr/local/bin/act_runner daemon