54 lines
1.8 KiB
Plaintext
54 lines
1.8 KiB
Plaintext
#!/command/with-contenv bashio
|
|
# shellcheck shell=bash
|
|
# ==============================================================================
|
|
# Home Assistant Community Add-on: Example
|
|
# Example init script, runs before any other service
|
|
# ==============================================================================
|
|
|
|
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')
|
|
|
|
# Register the runner
|
|
/usr/local/bin/act_runner register --no-interactive --instance "${GITEA_URL}" --token "${GITEA_TOKEN}" --name "${RUNNER_NAME}" --labels "${RUNNER_LABEL}"
|
|
|
|
# Check if registration was successful
|
|
if [ $? -ne 0 ]; then
|
|
bashio::log.error "Failed to register act_runner."
|
|
exit 1
|
|
fi
|
|
|
|
bashio::log.info "Registration complete. Starting act_runner in daemon mode..."
|
|
|
|
exec /usr/local/bin/act_runner daemon |