Files
Pironman5/pironman5/usr/sbin/pironman5-service
T
Cantibra 0925a0eb74
Pironman 5 Daemon / Pironman 5 Daemon (arm64, cicd.any, bookworm trixie noble, main) (push) Successful in 11s
Initialize Git Repository: 'Pironman5'
2026-05-04 21:21:53 +02:00

106 lines
4.5 KiB
Bash

#!/usr/bin/env bash
###
#
# Options Section
#
###
set -e
set -u
set -o pipefail
###
#
# Variables Section
#
###
source '/etc/pironman5.cfg'
PRODUCT_VERSION=$(/usr/bin/cat '/proc/device-tree/hat/product_ver')
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'}"
OLED_SLEEP_TIMEOUT="${OLED_SLEEP_TIMEOUT:='10'}"
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'}"
VIBRATION_SWITCH_PIN="${VIBRATION_SWITCH_PIN:='26'}"
VIBRATION_SWITCH_PULL_UP="${VIBRATION_SWITCH_PULL_UP:='true'}"
###
#
# Runtime Environment
#
###
if [[ -z "${1:-}" ]]; then
/opt/pironman5/venv/bin/pironman5-service --help
exit 1
fi
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'
if [[ "${PRODUCT_VERSION}" == '0x000b' ]]; then
/opt/pironman5/venv/bin/pironman5-service --oled-sleep-timeout "${OLED_SLEEP_TIMEOUT}" &> '/dev/null'
/opt/pironman5/venv/bin/pironman5-service --vibration-switch-pin "${VIBRATION_SWITCH_PIN}" &> '/dev/null'
/opt/pironman5/venv/bin/pironman5-service --vibration-switch-pull-up "${VIBRATION_SWITCH_PULL_UP}" &> '/dev/null'
fi
;;
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'
if [[ "${PRODUCT_VERSION}" == '0x000b' ]]; then
/opt/pironman5/venv/bin/pironman5-service --oled-sleep-timeout '0' &> '/dev/null'
/opt/pironman5/venv/bin/pironman5-service --vibration-switch-pin "${VIBRATION_SWITCH_PIN}" &> '/dev/null'
/opt/pironman5/venv/bin/pironman5-service --vibration-switch-pull-up "${VIBRATION_SWITCH_PULL_UP}" &> '/dev/null'
fi
;;
*)
/opt/pironman5/venv/bin/pironman5-service "$@"
;;
esac