2023-11-29 17:01:06 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
|
|
|
2023-12-03 22:54:18 +00:00
|
|
|
STAGED=$(
|
|
|
|
git --no-pager diff --name-only --no-color --cached --diff-filter=d |
|
|
|
|
# Remove quotations used to surrounding filenames with special characters.
|
|
|
|
sed -e "s/^\"//" -e "s/\"$//g"
|
2023-11-29 17:01:06 +00:00
|
|
|
)
|
|
|
|
|
2023-12-03 22:54:18 +00:00
|
|
|
MIX_TARGETS=()
|
|
|
|
WEB_TARGETS=()
|
|
|
|
while IFS= read -r FILENAME
|
2023-11-29 17:01:06 +00:00
|
|
|
do
|
2023-12-03 22:54:18 +00:00
|
|
|
if [[ "$FILENAME" =~ .*\.exs? ]]; then
|
|
|
|
MIX_TARGETS+=("${FILENAME}")
|
|
|
|
elif
|
|
|
|
[[ "$FILENAME" =~ assets/.*\.jsx? ]] ||
|
|
|
|
[[ "$FILENAME" =~ assets/.*\.tsx? ]]; then
|
|
|
|
WEB_TARGETS+=("${FILENAME#"assets/"}")
|
|
|
|
fi
|
|
|
|
done <<< "$STAGED"
|
2023-12-02 01:48:47 +00:00
|
|
|
|
2023-12-03 22:54:18 +00:00
|
|
|
if (( ${#MIX_TARGETS[@]} )); then
|
|
|
|
mix format "${MIX_TARGETS[@]}"
|
|
|
|
git add "${MIX_TARGETS[@]}"
|
|
|
|
fi
|
2023-12-02 01:48:47 +00:00
|
|
|
|
2023-12-03 22:54:18 +00:00
|
|
|
if (( ${#WEB_TARGETS[@]} )); then
|
|
|
|
cd assets
|
|
|
|
npx prettier --write "${WEB_TARGETS[@]}"
|
|
|
|
git add "${WEB_TARGETS[@]}"
|
|
|
|
fi
|