From 07c2cabc811ec5852e4ad7cfdcfb484e319e18a0 Mon Sep 17 00:00:00 2001 From: Ethan P Date: Wed, 1 Apr 2020 12:47:21 -0700 Subject: [PATCH] Fix small formatting and logic regressions --- build.sh | 41 +++++++++-------------------- lib/opt_hooks.sh | 54 +++++++++++++++++++------------------- lib/pager.sh | 2 ++ lib/print.sh | 8 +++--- lib/version.sh | 16 +++++------- src/batgrep.sh | 67 ++++++++++++++++++++++++------------------------ src/batman.sh | 7 +++-- src/batwatch.sh | 17 ++++-------- src/prettybat.sh | 48 +++++++++++++++++----------------- 9 files changed, 114 insertions(+), 146 deletions(-) diff --git a/build.sh b/build.sh index fc42bb6..fb33d61 100755 --- a/build.sh +++ b/build.sh @@ -34,7 +34,7 @@ next() { smsg() { case "$2" in "SKIP") printc " %{YELLOW} %{DIM}%s [skipped]%{CLEAR}\n" "$1" 1>&2 ;; - *) printc " %{YELLOW} %s...%{CLEAR}\n" "$1" 1>&2 ;; + *) printc " %{YELLOW} %s...%{CLEAR}\n" "$1" 1>&2 ;; esac } @@ -63,6 +63,7 @@ step_read() { # The processed file contents. step_preprocess() { local line + local docvar while IFS='' read -r line; do # Skip certain lines. [[ "$line" =~ ^LIB=.*$ ]] && continue @@ -75,7 +76,6 @@ step_preprocess() { # Replace the DOCS_* variables. if [[ "$line" =~ ^DOCS_[A-Z]+=.*$ ]]; then - local docvar docvar="$(cut -d'=' -f1 <<<"$line")" printf "%s=%q\n" "$docvar" "${!docvar}" continue @@ -143,7 +143,7 @@ step_compress() { printf "(exec -a \"\$0\" bash -c 'eval \"\$(cat <&3)\"' \"\$0\" \"\$@\" 3< <(dd bs=1 if=\"\$0\" skip=::: 2>/dev/null | gunzip)); exit \$?;\n" })" - sed "s/:::/$(wc -c <<<"$wrapper" | bc)/" <<<"$wrapper" + echo "${wrapper/:::/$(wc -c <<<"$wrapper" | sed 's/^[[:space:]]*//')}" gzip smsg "Compressing" } @@ -234,33 +234,16 @@ DOCS_URL="https://github.com/eth-p/bat-extras/blob/master/doc" DOCS_MAINTAINER="eth-p " while shiftopt; do + # shellcheck disable=SC2034 case "$OPT" in - --install) OPT_INSTALL=true ;; - --compress) OPT_COMPRESS=true ;; - --prefix) - shiftval - OPT_PREFIX="$OPT_VAL" - ;; - --alternate-executable) - shiftval - OPT_BAT="$OPT_VAL" - ;; - --minify) - shiftval - OPT_MINIFY="$OPT_VAL" - ;; - --no-verify) - shiftval - OPT_VERIFY=false - ;; - --docs:url) - shiftval - DOCS_URL="$OPT_VAL" - ;; - --docs:maintainer) - shiftval - DOCS_MAINTAINER="$OPT_VAL" - ;; + --install) OPT_INSTALL=true ;; + --compress) OPT_COMPRESS=true ;; + --prefix) shiftval; OPT_PREFIX="$OPT_VAL" ;; + --alternate-executable) shiftval; OPT_BAT="$OPT_VAL" ;; + --minify) shiftval; OPT_MINIFY="$OPT_VAL" ;; + --no-verify) shiftval; OPT_VERIFY=false ;; + --docs:url) shiftval; DOCS_URL="$OPT_VAL" ;; + --docs:maintainer) shiftval; DOCS_MAINTAINER="$OPT_VAL" ;; *) printc "%{RED}%s: unknown option '%s'%{CLEAR}" "$PROGRAM" "$OPT" diff --git a/lib/opt_hooks.sh b/lib/opt_hooks.sh index 8984670..5e9ee9e 100644 --- a/lib/opt_hooks.sh +++ b/lib/opt_hooks.sh @@ -20,26 +20,22 @@ hook_color() { SHIFTOPT_HOOKS+=("__shiftopt_hook__color") __shiftopt_hook__color() { case "$OPT" in - --no-color) - OPT_COLOR=false - printc_init "$OPT_COLOR" - ;; + + --no-color) OPT_COLOR=false ;; --color) { case "$OPT_VAL" in - auto) : ;; - always | true) - OPT_COLOR=true - printc_init "$OPT_COLOR" - ;; - never | false) - OPT_COLOR=false - printc_init "$OPT_COLOR" - ;; + always | true) OPT_COLOR=true ;; + never | false) OPT_COLOR=false ;; + + auto) return 0 ;; esac } ;; *) return 1 ;; esac + + printc_init "$OPT_COLOR" + return 0 } # Default color support. @@ -59,27 +55,29 @@ hook_pager() { SHIFTOPT_HOOKS+=("__shiftopt_hook__pager") __shiftopt_hook__pager() { case "$OPT" in + # Specify paging. - --no-pager) + --no-pager) shiftval; SCRIPT_PAGER_CMD='' ;; + --paging) { shiftval - SCRIPT_PAGER_CMD='' - ;; - --paging) - shiftval - { - case "$OPT_VAL" in - auto) : ;; - never) SCRIPT_PAGER_CMD='' ;; - always) : ;; - esac - } - ;; + + case "$OPT_VAL" in + auto) : ;; + always) : ;; + never) SCRIPT_PAGER_CMD='' ;; + esac + } ;; # Specify the pager. --pager) { shiftval - SCRIPT_PAGER_CMD=($OPT_VAL) - PAGER_ARGS=() + + # [note]: These are both intentional. + # shellcheck disable=SC2034 disable=SC2206 + { + SCRIPT_PAGER_CMD=($OPT_VAL) + PAGER_ARGS=() + } } ;; *) return 1 ;; diff --git a/lib/pager.sh b/lib/pager.sh index 6e4f2e6..63ab80b 100644 --- a/lib/pager.sh +++ b/lib/pager.sh @@ -77,6 +77,8 @@ fi # Prefer the bat pager. if [[ -n "${BAT_PAGER+x}" ]]; then + # [note]: This is intentional. + # shellcheck disable=SC2206 SCRIPT_PAGER_CMD=($BAT_PAGER) SCRIPT_PAGER_ARGS=() fi diff --git a/lib/print.sh b/lib/print.sh index a578c9d..9d81c8f 100644 --- a/lib/print.sh +++ b/lib/print.sh @@ -23,10 +23,10 @@ printc() { # false -- Turns off color output. printc_init() { case "$1" in - true) _PRINTC_PATTERN="$_PRINTC_PATTERN_ANSI" ;; + true) _PRINTC_PATTERN="$_PRINTC_PATTERN_ANSI" ;; false) _PRINTC_PATTERN="$_PRINTC_PATTERN_PLAIN" ;; - "") { + "[DEFINE]") { _PRINTC_PATTERN_ANSI="" _PRINTC_PATTERN_PLAIN="" @@ -37,7 +37,7 @@ printc_init() { continue fi - ansi="$(sed 's/\\/\\\\/' <<<"$ansi")" + ansi="${ansi/\\/\\\\}" _PRINTC_PATTERN_PLAIN="${_PRINTC_PATTERN_PLAIN}s/%{${name}}//g;" _PRINTC_PATTERN_ANSI="${_PRINTC_PATTERN_ANSI}s/%{${name}}/${ansi}/g;" @@ -71,7 +71,7 @@ print_error() { # ----------------------------------------------------------------------------- # Initialization: # ----------------------------------------------------------------------------- -printc_init <&2 exit 2 diff --git a/src/prettybat.sh b/src/prettybat.sh index ffe24cb..681ce45 100755 --- a/src/prettybat.sh +++ b/src/prettybat.sh @@ -93,19 +93,19 @@ map_language_to_extension() { local ext=".txt" case "$1" in - sh | bash) ext=".sh" ;; - js | es6 | es) ext=".js" ;; - jsx) ext=".jsx" ;; - ts) ext=".ts" ;; - tsx) ext=".tsx" ;; - css) ext=".css" ;; - scss) ext=".scss" ;; - sass) ext=".sass" ;; + sh | bash) ext=".sh" ;; + js | es6 | es) ext=".js" ;; + jsx) ext=".jsx" ;; + ts) ext=".ts" ;; + tsx) ext=".tsx" ;; + css) ext=".css" ;; + scss) ext=".scss" ;; + sass) ext=".sass" ;; html | htm | shtml | xhtml) ext=".html" ;; - json) ext=".json" ;; - md | mdown | markdown) ext=".md" ;; - yaml | yml) ext=".yml" ;; - rust | rs) ext=".rs" ;; + json) ext=".json" ;; + md | mdown | markdown) ext=".md" ;; + yaml | yml) ext=".yml" ;; + rust | rs) ext=".rs" ;; esac echo "$ext" @@ -146,13 +146,13 @@ process_file() { local ext="$2" local fext="$ext" local lang="${ext:1}" + local formatter if [[ -n "$OPT_LANGUAGE" ]]; then lang="$OPT_LANGUAGE" fext="$(map_language_to_extension "$lang")" fi - local formatter formatter="$(map_extension_to_formatter "$fext")" echo "FORMATTER >>> $formatter" if [[ "$formatter" = "none" ]]; then @@ -168,17 +168,21 @@ process_file() { local status local data_raw local data_formatted + + # shellcheck disable=SC2094 disable=SC2181 if [[ "$file" = "-" ]]; then data_raw="$(cat -)" data_formatted="$("formatter_${formatter}_process" "$file" 2>/dev/null <<<"$data_raw")" - if "$data_formatted"; then + + if [[ $? -ne 0 ]]; then print_warning "'STDIN': Unable to format with '%s'" "$formatter" print_file --language="$lang" - <<<"$data_raw" return 1 fi else data_formatted="$("formatter_${formatter}_process" "$file" <"$file")" - if ! "$data_formatted"; then + + if [[ $? -ne 0 ]]; then print_warning "'%s': Unable to format with '%s'" "$file" "$formatter" print_file --language="$lang" "$file" return 1 @@ -201,15 +205,9 @@ while shiftopt; do case "$OPT" in # Language options - -l) - shiftval - OPT_LANGUAGE="${OPT_VAL}" - ;; - -l*) OPT_LANGUAGE="${OPT:2}" ;; - --language) - shiftval - OPT_LANGUAGE="$OPT_VAL" - ;; + -l) shiftval; OPT_LANGUAGE="${OPT_VAL}" ;; + -l*) OPT_LANGUAGE="${OPT:2}" ;; + --language) shiftval; OPT_LANGUAGE="$OPT_VAL" ;; # bat options -*) { @@ -237,4 +235,4 @@ for file in "${FILES[@]}"; do done # Exit. -exit "$EXIT" +exit "$FAIL"