indent/outdent mismatch when using multi-line array assignment inside case…esac
My go-to way of quickly parsing arguments is as follows:
#!/bin/bash
quiet="true"
files=()
for arg in "${@}"; do
case "${arg}" in
"-v" | "--verbose")
quiet="false"
;;
*)
files+=(
"${arg}"
)
;;
esac
done
Beautysh (v6.1.0) incorrectly reports this as indent/outdent mismatch and instead indents it like so:
#!/bin/bash
quiet="true"
files=()
for arg in "${@}"; do
case "${arg}" in
"-v" | "--verbose")
quiet="false"
;;
*)
files+=(
"${arg}"
)
;;
esac
done
The deciding factor seems to be the multi-line parenthesis in assigning files
. If I assign it all on one line, like this:
files+=("${arg}")
then beautysh is satisfied with the indentation (i.e. doesn’t change it or report a mismatch).