improved argument parsing
This commit is contained in:
parent
5231d683b0
commit
37aba9f6a5
1 changed files with 37 additions and 8 deletions
|
@ -3,6 +3,8 @@
|
|||
# author: Daniel Sommer <daniel.sommer@velvettear.de>
|
||||
# license: MIT
|
||||
|
||||
# default_
|
||||
|
||||
# blinky
|
||||
blinky_url="127.0.0.1:3000"
|
||||
blinky_mode="morph"
|
||||
|
@ -17,11 +19,10 @@ thermal_zones=(
|
|||
"3"
|
||||
)
|
||||
|
||||
# argument to lowercase
|
||||
arg="${1,,}"
|
||||
|
||||
# functions
|
||||
|
||||
#############
|
||||
# functions #
|
||||
#############
|
||||
# check for root permissions
|
||||
function checkRoot() {
|
||||
[[ "$EUID" != 0 ]] && printf "error: permission denied!\n" && exit 1
|
||||
}
|
||||
|
@ -74,8 +75,36 @@ function getTemperature() {
|
|||
[[ "$result" -ge "$max_temp" ]] && printf "warning: maximum temperature reached\n" && blinky_mode="pulse" && blinky_duration="1500" && return 0
|
||||
}
|
||||
|
||||
# main part
|
||||
case "$arg" in
|
||||
|
||||
#############
|
||||
# main part #
|
||||
#############
|
||||
argument_count="$#"
|
||||
index=1
|
||||
|
||||
[[ "$argument_count" -lt 1 ]] && printf "error: missing arguments\n" && exit 1
|
||||
|
||||
url="${@: $argument_count: 1}"
|
||||
|
||||
while [[ "$index" -lt $(( $argument_count -1 )) ]]; do
|
||||
argument="${@: $index: 1}"
|
||||
argument="${argument,,}"
|
||||
(( index++ ))
|
||||
case "$argument" in
|
||||
-bm|--blinky-mode)
|
||||
blinky_mode="${@: $index: 1}"
|
||||
;;
|
||||
-bd|--blinky-duration)
|
||||
blinky_duration="${@: $index: 1}"
|
||||
;;
|
||||
-m|--mode)
|
||||
mode="${@: $index: 1}"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
printf "checking mode '$mode'...\n"
|
||||
case "$mode" in
|
||||
-t|--temp|--temperature)
|
||||
checkRoot
|
||||
getTemperature
|
||||
|
@ -83,6 +112,6 @@ case "$arg" in
|
|||
sendPOST "color=$result" "mode=$blinky_mode" "duration=$blinky_duration"
|
||||
;;
|
||||
*)
|
||||
printf "error: no argument given or argument unknown!\n" && exit 1
|
||||
sendPOST "color=random" "mode=$blinky_mode" "duration=$blinky_duration"
|
||||
;;
|
||||
esac
|
||||
|
|
Loading…
Reference in a new issue