87 lines
3.4 KiB
Bash
87 lines
3.4 KiB
Bash
#!/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
|