dots/scripts/check-fmt-git-pre-commit.bash
Price Hiller 196ea4bb85
Some checks failed
Check Formatting of Files / Check-Formatting (push) Failing after 1m4s
feat: allow exclusions in check fmt
2024-06-12 03:24:59 -05:00

46 lines
932 B
Bash
Executable File

#!/usr/bin/env -S nix --extra-experimental-features "flakes nix-command" shell nixpkgs#bash nixpkgs#git --command bash
# vim: ft=sh
set -euo pipefail
main() {
local root
root="$(git rev-parse --show-toplevel)"
local files=()
local excluded_files=()
local excluded_dirs=(
"${root}/users/price/dots/.config/vesktop"
)
while IFS= read -r file; do
local add_file=true
local fpath="${root}/${file}"
if [[ -r "$fpath" ]]; then
for excluded_dir in "${excluded_dirs[@]}"; do
if [[ "$fpath" == "$excluded_dir"* ]]; then
add_file=false
break
fi
done
for excluded_file in "${excluded_files[@]}"; do
if [[ "$fpath" == "$excluded_file" ]]; then
add_file=false
break
fi
done
if [[ "$add_file" == true ]]; then
files+=("$fpath")
fi
fi
done < <(git diff --name-only --staged --diff-filter=d)
if ((${#files[@]} > 0)); then
Fmt -- "${files[@]}"
fi
}
main "${@}"