Skip to content

Commit

Permalink
utils/shfmt.sh: add != and =~ to within test regex
Browse files Browse the repository at this point in the history
  • Loading branch information
XuehaiPan committed Nov 12, 2021
1 parent 2345a34 commit 391e7e2
Showing 1 changed file with 11 additions and 6 deletions.
17 changes: 11 additions & 6 deletions Library/Homebrew/utils/shfmt.sh
Original file line number Diff line number Diff line change
Expand Up @@ -227,11 +227,11 @@ no_forbidden_styles() {
align_multiline_if_condition() {
local line
local lastline=''
local base_indent='' # indents before `if`
local extra_indent='' # 2 extra spaces for `elif`
local base_indent='' # indents before `if`
local elif_extra_indent='' # 2 extra spaces for `elif`
local multiline_if_then_begin_regex='^( *)(el)?if '
local multiline_if_then_end_regex='^(.*)\; (then( *#.*)?)$'
local within_test_regex='^( *)(((! )?-[fdLrwxeszn] )|([^\[]+ == ))'
local within_test_regex='^( *)(((! )?-[fdLrwxeszn] )|([^\[]+ (==|!=|=~) ))'

trim() {
[[ "$1" =~ [^[:space:]](.*[^[:space:]])? ]]
Expand All @@ -241,7 +241,7 @@ align_multiline_if_condition() {
if [[ "$1" =~ ${multiline_if_then_begin_regex} ]]
then
base_indent="${BASH_REMATCH[1]}"
[[ -n "${BASH_REMATCH[2]}" ]] && extra_indent=' '
[[ -n "${BASH_REMATCH[2]}" ]] && elif_extra_indent=' ' # 2 extra spaces for `elif`
echo "$1"
shift
fi
Expand All @@ -257,9 +257,14 @@ align_multiline_if_condition() {
fi
if [[ "${line}" =~ ${within_test_regex} ]]
then
echo "${base_indent}${extra_indent} $(trim "${line}")"
# Add 3 extra spaces (6 spaces in total) to multiline test conditions
# before: after:
# if [[ -n ... || if [[ -n ... ||
# -n ... ]] -n ... ]]
# then then
echo "${base_indent}${elif_extra_indent} $(trim "${line}")"
else
echo "${base_indent}${extra_indent} $(trim "${line}")"
echo "${base_indent}${elif_extra_indent} $(trim "${line}")"
fi
done

Expand Down

0 comments on commit 391e7e2

Please sign in to comment.