#!/usr/bin/env bash ### # # Options Section # ### set -e set -u set -o pipefail ### # # Variables Section # ### source '/etc/pironman5.cfg' DEBUG_LEVEL="${DEBUG_LEVEL:='info'}" OLED_ENABLED="${OLED_ENABLED:='true'}" OLED_ROTATION="${OLED_ROTATION:='0'}" OLED_DISK="${OLED_DISK:='total'}" OLED_NETWORK_INTERFACE="${OLED_NETWORK_INTERFACE:='all'}" RGB_ENABLED="${RGB_ENABLED:='true'}" RGB_LED_COUNT="${RGB_LED_COUNT:='4'}" RGB_COLOR="${RGB_COLOR:='0a1aff'}" RGB_BRIGHTNESS="${RGB_BRIGHTNESS:='50'}" RGB_SPEED="${RGB_SPEED:='50'}" RGB_STYLE="${RGB_STYLE:='breathing'}" TEMP_UNIT="${TEMP_UNIT:='C'}" FAN_MODE="${FAN_MODE:='0'}" FAN_GPIO_PIN="${FAN_GPIO_PIN:='6'}" ### # # Runtime Environment # ### case "${1}" in start) /opt/pironman5/venv/bin/pironman5-service start --debug-level "${DEBUG_LEVEL}" 2>1 1> '/dev/null' & /usr/bin/pgrep --newest 'pironman5' > '/run/pironman5/pironman5.pid' ;; stop) /opt/pironman5/venv/bin/pironman5-service stop 2>1 1> '/dev/null' /usr/bin/sleep '3s' ;; normal) /opt/pironman5/venv/bin/pironman5-service --oled-enable "${OLED_ENABLED}" &> '/dev/null' /opt/pironman5/venv/bin/pironman5-service --oled-rotation "${OLED_ROTATION}" &> '/dev/null' /opt/pironman5/venv/bin/pironman5-service --oled-disk "${OLED_DISK}" &> '/dev/null' /opt/pironman5/venv/bin/pironman5-service --oled-network-interface "${OLED_NETWORK_INTERFACE}" &> '/dev/null' /opt/pironman5/venv/bin/pironman5-service --rgb-enable "${RGB_ENABLED}" &> '/dev/null' /opt/pironman5/venv/bin/pironman5-service --rgb-led-count "${RGB_LED_COUNT}" &> '/dev/null' /opt/pironman5/venv/bin/pironman5-service --rgb-color "${RGB_COLOR}" &> '/dev/null' /opt/pironman5/venv/bin/pironman5-service --rgb-brightness "${RGB_BRIGHTNESS}" &> '/dev/null' /opt/pironman5/venv/bin/pironman5-service --rgb-speed "${RGB_SPEED}" &> '/dev/null' /opt/pironman5/venv/bin/pironman5-service --rgb-style "${RGB_STYLE}" &> '/dev/null' /opt/pironman5/venv/bin/pironman5-service --temperature-unit "${TEMP_UNIT}" &> '/dev/null' /opt/pironman5/venv/bin/pironman5-service --gpio-fan-mode "${FAN_MODE}" &> '/dev/null' /opt/pironman5/venv/bin/pironman5-service --gpio-fan-pin "${FAN_GPIO_PIN}" &> '/dev/null' ;; error) /opt/pironman5/venv/bin/pironman5-service --oled-enable "${OLED_ENABLED}" &> '/dev/null' /opt/pironman5/venv/bin/pironman5-service --oled-rotation "${OLED_ROTATION}" &> '/dev/null' /opt/pironman5/venv/bin/pironman5-service --oled-disk "${OLED_DISK}" &> '/dev/null' /opt/pironman5/venv/bin/pironman5-service --oled-network-interface "${OLED_NETWORK_INTERFACE}" &> '/dev/null' /opt/pironman5/venv/bin/pironman5-service --rgb-enable 'true' &> '/dev/null' /opt/pironman5/venv/bin/pironman5-service --rgb-led-count '4' &> '/dev/null' /opt/pironman5/venv/bin/pironman5-service --rgb-color 'ff0000' &> '/dev/null' /opt/pironman5/venv/bin/pironman5-service --rgb-brightness '100' &> '/dev/null' /opt/pironman5/venv/bin/pironman5-service --rgb-speed '100' &> '/dev/null' /opt/pironman5/venv/bin/pironman5-service --rgb-style 'breathing' &> '/dev/null' /opt/pironman5/venv/bin/pironman5-service --temperature-unit "${TEMP_UNIT}" &> '/dev/null' /opt/pironman5/venv/bin/pironman5-service --gpio-fan-mode "${FAN_MODE}" &> '/dev/null' /opt/pironman5/venv/bin/pironman5-service --gpio-fan-pin "${FAN_GPIO_PIN}" &> '/dev/null' ;; *) /opt/pironman5/venv/bin/pironman5-service "$@" ;; esac