serenity/Meta/lint-prettier.sh
kleines Filmröllchen f0ba4d9037 Meta: Enforce Prettier formatting of Markdown files
We already use the opinionated Prettier formatter
for JavaScript (with appropriate configuration),
and in general it seems to be one of the best
Markdown auto-formatters. Therefore, the choice
seems natural to finally enforce Markdown
formatting.
2024-10-04 10:46:42 -04:00

38 lines
968 B
Bash
Executable file

#!/usr/bin/env bash
set -e
script_path=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
cd "${script_path}/.." || exit 1
if [ "$#" -eq "0" ]; then
mapfile -t files < <(
git ls-files \
--exclude-from .prettierignore \
-- \
'*.js' '*.mjs' '*.md'
)
else
files=()
for file in "$@"; do
if [[ "${file}" == *".js" || "${file}" == *".mjs" || "${file}" == *".md" ]]; then
files+=("${file}")
fi
done
fi
if (( ${#files[@]} )); then
if ! command -v prettier >/dev/null 2>&1 ; then
echo "prettier is not available, but JS or Markdown files need linting! Either skip this script, or install prettier."
exit 1
fi
if ! prettier --version | grep -qF '2.' ; then
echo "You are using '$(prettier --version)', which appears to not be prettier 2."
exit 1
fi
prettier --check "${files[@]}"
else
echo "No .js, .mjs, or .md files to check."
fi