diff --git a/shfmt.sh b/shfmt.sh new file mode 100644 index 0000000..68e0fde --- /dev/null +++ b/shfmt.sh @@ -0,0 +1,39 @@ +set -uo pipefail +IFS=$'\n\t' + +DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +source "$DIR/_reformat-common.bash" + +set -e + +file="$1" + +pushd "$(dirname "$file")" 2>&1 + +if [[ "$WOULD_REFORMAT" = "would_reformat" ]]; then + # probably others too :( + syntax_error_retval=1 + + set +e + out=$(dart format -o none --set-exit-if-changed "$file" + retval="$?" + set -e + + if [[ "$retval" = "$syntax_error_retval" ]]; then + retval=2 + fi + + exit "$retval" +fi + +if [[ "$WOULD_REFORMAT" = "do_reformat" ]]; then + out=$(shfmt -w "$file" 2>&1 > /dev/null) + retval="$?" + + echo "$out" + exit "$retval" +fi + +exit 255 +