From fe7461476255d0dfa3b1c1d3dd5917eb6c833341 Mon Sep 17 00:00:00 2001 From: th33xitus Date: Wed, 23 Feb 2022 19:14:39 +0100 Subject: [PATCH] fix: improve service_control.sh --- docker/service_control.sh | 130 +++++++++++++++++++------------------- 1 file changed, 64 insertions(+), 66 deletions(-) diff --git a/docker/service_control.sh b/docker/service_control.sh index 2023567..aa80ee1 100644 --- a/docker/service_control.sh +++ b/docker/service_control.sh @@ -11,35 +11,34 @@ MY_NAME="${0##*/}" PARSED_ARGUMENTS="$(getopt -n "$MY_NAME" -o t:p:a --long type:,property:,all,value,no-legend,plain -- "$@")" || exit $? eval set -- "$PARSED_ARGUMENTS" -while : -do +while true; do case "$1" in - -t | --type) - shift 2 - ;; - -p | --property) - IFS="," read -a PROPERTIES <<< $2 - shift 2 - ;; - -a | --all) - shift - ;; - --value) - shift - ;; - --no-legend) - shift - ;; - --plain) - shift - ;; - --) - shift; - break - ;; - *) - die "unexpected option: $1 - this should not happen." - ;; + -t | --type) + shift 2 + ;; + -p | --property) + IFS="," read -a PROPERTIES <<<$2 + shift 2 + ;; + -a | --all) + shift + ;; + --value) + shift + ;; + --no-legend) + shift + ;; + --plain) + shift + ;; + --) + shift + break + ;; + *) + die "unexpected option: $1 - this should not happen." + ;; esac done @@ -49,48 +48,47 @@ shift UNITS=($@) case "$COMMAND" in - show) - for UNIT in "${UNITS[@]}" - do - for PROPERTY in "${PROPERTIES[@]}" - do - case "$PROPERTY" in - LoadState) - echo "loaded" - ;; - ActiveState) - echo "active" - ;; - SubState) - sudo /usr/bin/supervisorctl status "$UNIT" | awk '{print tolower($2)}' - ;; - *) - echo "unknown" - ;; - esac - done - echo "" +show) + for UNIT in "${UNITS[@]}"; do + UNIT_STATE=$(sudo /usr/bin/supervisorctl status "$UNIT" | awk '{print tolower($2)}') + + for PROPERTY in "${PROPERTIES[@]}"; do + case "$PROPERTY" in + LoadState) + echo "loaded" + ;; + ActiveState) + [ "$UNIT_STATE" = "running" ] && echo "active" || echo "inactive" + ;; + SubState) + [ "$UNIT_STATE" = "running" ] && echo "running" || echo "dead" + ;; + *) + echo "unknown" + ;; + esac done - ;; + echo "" + done + ;; - list-units) - sudo /usr/bin/supervisorctl status | awk '{print $1".service\tloaded\tactive\t"tolower($2)"\t"$1" service"}' - ;; +list-units) + sudo /usr/bin/supervisorctl status | awk '{print $1".service\tloaded\t"(tolower($2)=="running"?"active\trunning":"inactive\tdead")"\t"$1" service"}' + ;; - start | stop | restart) - for UNIT in "${UNITS[@]}" - do - if [ "$UNIT" = "klipper" ]; then - sudo /usr/bin/supervisorctl "$COMMAND" simulavr klipper - else - sudo /usr/bin/supervisorctl "$COMMAND" "$UNIT" - fi - done - ;; +start | stop | restart) + for UNIT in "${UNITS[@]}"; do + if [ "$UNIT" = "klipper" ]; then + sudo /usr/bin/supervisorctl "$COMMAND" simulavr klipper + else + sudo /usr/bin/supervisorctl "$COMMAND" "$UNIT" + fi + done + ;; - *) - die "unknown command '$COMMAND'" - ;; +*) + die "unknown command '$COMMAND'" + ;; esac exit 0 \ No newline at end of file