#!/usr/bin/env bashio
# ==============================================================================
# Take down the S6 supervision tree when Home Assistant fails
# ==============================================================================
declare RESTART_EXIT_CODE=100
declare SIGNAL_EXIT_CODE=256
declare SIGTERM=15
declare APP_EXIT_CODE=${1}
declare SIGNAL_NO=${2}
declare NEW_EXIT_CODE=

bashio::log.info "Home Assistant Core finish process exit code ${APP_EXIT_CODE}"

if [[ ${APP_EXIT_CODE} -eq ${RESTART_EXIT_CODE} ]]; then
  exit 0
elif [[ ${APP_EXIT_CODE} -eq ${SIGNAL_EXIT_CODE} ]]; then
  bashio::log.info "Home Assistant Core finish process received signal ${SIGNAL_NO}"

  NEW_EXIT_CODE=$((128 + SIGNAL_NO))
  echo ${NEW_EXIT_CODE} > /run/s6-linux-init-container-results/exitcode
else
  bashio::log.info "Home Assistant Core service shutdown"

  echo ${APP_EXIT_CODE} > /run/s6-linux-init-container-results/exitcode
fi

# Make sure to stop the container
/run/s6/basedir/bin/halt
