lint-prettier.sh 984 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #!/usr/bin/env bash
  2. set -e
  3. script_path=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
  4. cd "${script_path}/.." || exit 1
  5. if [ "$#" -eq "0" ]; then
  6. files=()
  7. while IFS= read -r file; do
  8. files+=("$file")
  9. done < <(
  10. git ls-files \
  11. --exclude-from .prettierignore \
  12. -- \
  13. '*.js' '*.mjs'
  14. )
  15. else
  16. files=()
  17. for file in "$@"; do
  18. if [[ "${file}" == *".js" ]] || [[ "${file}" == *".mjs" ]]; then
  19. files+=("${file}")
  20. fi
  21. done
  22. fi
  23. if (( ${#files[@]} )); then
  24. if ! command -v prettier >/dev/null 2>&1 ; then
  25. echo "prettier is not available, but JS files need linting! Either skip this script, or install prettier."
  26. exit 1
  27. fi
  28. if ! prettier --version | grep -qF '2.' ; then
  29. echo "You are using '$(prettier --version)', which appears to not be prettier 2."
  30. exit 1
  31. fi
  32. prettier --check "${files[@]}"
  33. else
  34. echo "No .js or .mjs files to check."
  35. fi