From 422680ee9f85f5bf0ee0d1a98fa922aa3fe6c62d Mon Sep 17 00:00:00 2001 From: Mcat12 Date: Sun, 14 Apr 2019 13:03:25 -0700 Subject: [PATCH 1/3] Fix chronometer refresh incorrectly reading the long argument sleep time `-r` worked, but `--refresh` did not. Fixes #2703 Signed-off-by: Mcat12 --- advanced/Scripts/chronometer.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/advanced/Scripts/chronometer.sh b/advanced/Scripts/chronometer.sh index 7c2d8b52..614d05ed 100755 --- a/advanced/Scripts/chronometer.sh +++ b/advanced/Scripts/chronometer.sh @@ -463,8 +463,7 @@ chronoFunc() { # Get refresh number if [[ "$*" == *"-r"* ]]; then num="$*" - num="${num/*-r /}" - num="${num/ */}" + num="${num/*-r* /}" num_str="Refresh set for every $num seconds" else num_str="" From add5e4ca5ef004c7d100d79c69651ed0548ea868 Mon Sep 17 00:00:00 2001 From: Mcat12 Date: Sat, 27 Apr 2019 13:39:44 -0700 Subject: [PATCH 2/3] Explicitly allow only -r and --refresh in argument handler It is already checked, but this make the code explicit. Signed-off-by: Mcat12 --- advanced/Scripts/chronometer.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/advanced/Scripts/chronometer.sh b/advanced/Scripts/chronometer.sh index 614d05ed..c62e4f29 100755 --- a/advanced/Scripts/chronometer.sh +++ b/advanced/Scripts/chronometer.sh @@ -461,7 +461,7 @@ chronoFunc() { fi # Get refresh number - if [[ "$*" == *"-r"* ]]; then + if [[ "$*" == *"-r" || "$*" == *"-r "* || "$*" == *"--refresh" || "$*" == *"--refresh "* ]]; then num="$*" num="${num/*-r* /}" num_str="Refresh set for every $num seconds" From b320e749218208081122ad3e2cff0289d5f3d353 Mon Sep 17 00:00:00 2001 From: Mcat12 Date: Sat, 27 Apr 2019 14:05:04 -0700 Subject: [PATCH 3/3] Improve argument handling Signed-off-by: Mcat12 --- advanced/Scripts/chronometer.sh | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/advanced/Scripts/chronometer.sh b/advanced/Scripts/chronometer.sh index c62e4f29..1a4ce993 100755 --- a/advanced/Scripts/chronometer.sh +++ b/advanced/Scripts/chronometer.sh @@ -444,6 +444,9 @@ get_strings() { } chronoFunc() { + local extra_arg="$1" + local extra_value="$2" + get_init_stats for (( ; ; )); do @@ -461,9 +464,8 @@ chronoFunc() { fi # Get refresh number - if [[ "$*" == *"-r" || "$*" == *"-r "* || "$*" == *"--refresh" || "$*" == *"--refresh "* ]]; then - num="$*" - num="${num/*-r* /}" + if [[ "${extra_arg}" = "refresh" ]]; then + num="${extra_value}" num_str="Refresh set for every $num seconds" else num_str="" @@ -472,7 +474,7 @@ chronoFunc() { clear # Remove exit message heading on third refresh - if [[ "$count" -le 2 ]] && [[ "$*" != *"-e"* ]]; then + if [[ "$count" -le 2 ]] && [[ "${extra_arg}" != "exit" ]]; then echo -e " ${COL_LIGHT_GREEN}Pi-hole Chronometer${COL_NC} $num_str ${COL_LIGHT_RED}Press Ctrl-C to exit${COL_NC} @@ -520,10 +522,10 @@ chronoFunc() { fi # Handle exit/refresh options - if [[ "$*" == *"-e"* ]]; then + if [[ "${extra_arg}" == "exit" ]]; then exit 0 else - if [[ "$*" == *"-r"* ]]; then + if [[ "${extra_arg}" == "refresh" ]]; then sleep "$num" else sleep 5 @@ -560,12 +562,10 @@ if [[ $# = 0 ]]; then chronoFunc fi -for var in "$@"; do - case "$var" in - "-j" | "--json" ) jsonFunc;; - "-h" | "--help" ) helpFunc;; - "-r" | "--refresh" ) chronoFunc "$@";; - "-e" | "--exit" ) chronoFunc "$@";; - * ) helpFunc "?";; - esac -done +case "$1" in + "-j" | "--json" ) jsonFunc;; + "-h" | "--help" ) helpFunc;; + "-r" | "--refresh" ) chronoFunc refresh "$2";; + "-e" | "--exit" ) chronoFunc exit;; + * ) helpFunc "?";; +esac