batwatch: small formatting changes

This commit is contained in:
Ethan P 2020-07-06 17:43:37 -07:00
parent 990a1dc397
commit 69d9c38326
No known key found for this signature in database
GPG Key ID: 6963FD04F6CF35EA
2 changed files with 34 additions and 39 deletions

View File

@ -24,7 +24,7 @@ hook_help() {
SHIFTOPT_HOOKS+=("__shiftopt_hook__help") SHIFTOPT_HOOKS+=("__shiftopt_hook__help")
__shiftopt_hook__help() { __shiftopt_hook__help() {
if [[ "$OPT" = "--help" ]] || [[ "$OPT" = "-h" ]]; then if [[ "$OPT" = "--help" ]] || [[ "$OPT" = "-h" ]]; then
echo 'Usage: batwatch [--watcher entr|poll][--[no-]clear] <file> [<file> ...]' echo 'Usage: batwatch [--watcher entr|poll][--[no-]clear] <file> [<file> ...]'
exit 0 exit 0
fi fi
@ -75,26 +75,22 @@ determine_stat_variant() {
return 0 return 0
fi fi
local varient name cmd ts local variant name flags ts
for variant in "gnu -c %Z" "bsd -f %m"; do
read -r name flags <<< "$variant"
for varient in "gnu -c %Z" "bsd -f %m"; do # save the results of the stat command
read -r name flags <<< "$varient" if read -r ts < <(stat ${flags} "$0" 2>/dev/null); then
# save the results of the stat command # verify that the value is an epoch timestamp
if read -r ts < \ # before proceeding
<( stat ${flags} "$0" 2>/dev/null ); then if [[ "${ts}" =~ ^[0-9]+$ ]]; then
POLL_STAT_COMMAND=(stat ${flags})
# verify that the value is an epoch timetamp POLL_STAT_VARIANT="$name"
# before proceeding return 0
if [[ "${ts}" =~ ^[0-9]+$ ]]; then fi
fi
POLL_STAT_COMMAND=( stat ${flags} ) done
POLL_STAT_VARIANT="$name"
return 0
fi
fi
done
return 1 return 1
} }
@ -130,6 +126,7 @@ watcher_poll_watch() {
fi fi
# Check if the file has been modified.
local i=0 local i=0
for file in "${files[@]}"; do for file in "${files[@]}"; do
time="$("${POLL_STAT_COMMAND[@]}" "$file")" time="$("${POLL_STAT_COMMAND[@]}" "$file")"
@ -142,13 +139,12 @@ watcher_poll_watch() {
((i++)) ((i++))
done done
read -r -t 1 input # Wait for "q" to exit, or check again after 1 second.
local input
if [[ "$input" =~ [q|Q] ]]; then read -r -t 1 input
exit if [[ "$input" =~ [q|Q] ]]; then
fi exit
fi
input=
done done
"${POLL_STAT_COMMAND[@]}" "$@" "${POLL_STAT_COMMAND[@]}" "$@"
@ -199,7 +195,6 @@ while shiftopt; do
--watcher) shiftval; OPT_WATCHER="$OPT_VAL" ;; --watcher) shiftval; OPT_WATCHER="$OPT_VAL" ;;
--clear) OPT_CLEAR=true ;; --clear) OPT_CLEAR=true ;;
--no-clear) OPT_CLEAR=false ;; --no-clear) OPT_CLEAR=false ;;
-h|--help) OPT_HELP=true ;;
# bat/Pager options # bat/Pager options
-*) BAT_ARGS+=("$OPT=$OPT_VAL") ;; -*) BAT_ARGS+=("$OPT=$OPT_VAL") ;;

View File

@ -6,8 +6,8 @@ setup() {
test:version() { test:version() {
description "Test 'batwatch --version'" description "Test 'batwatch --version'"
snapshot stdout snapshot stdout
snapshot stderr snapshot stderr
batwatch --version | awk 'FNR <= 1 { print $1 }' batwatch --version | awk 'FNR <= 1 { print $1 }'
batwatch --version | awk 'p{print} /^$/ { p=1 }' batwatch --version | awk 'p{print} /^$/ { p=1 }'
@ -15,17 +15,17 @@ test:version() {
test:help() { test:help() {
description "Test 'batwatch --help'" description "Test 'batwatch --help'"
snapshot stdout snapshot stdout
batwatch --help batwatch --help
assert batwatch --help assert batwatch --help
batwatch --help | grep -q 'Usage' batwatch --help | grep -q 'Usage'
} }
test:displayed() { test:displayed() {
description "Test 'batwatch <file>': <file> should be displayed'" description "Test 'batwatch <file>': <file> should be displayed'"
snapshot stdout snapshot stdout
batwatch --no-clear --watcher poll file.sh <<< "q" batwatch --no-clear --watcher poll file.sh <<< "q"
batwatch --watcher poll file.sh <<< "q" | grep -q "Hello" batwatch --watcher poll file.sh <<< "q" | grep -q "Hello"
} }