31 lines
618 B
Bash
Executable file
31 lines
618 B
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
has() {
|
|
if (( $# )); then
|
|
hash "$1" 2>/dev/null
|
|
fi
|
|
}
|
|
|
|
is_a() {
|
|
if (( $# > 1 )); then
|
|
head -1 "$1" | grep -qE '^#!.*'"$2"'$'
|
|
fi
|
|
}
|
|
|
|
find . -name .DS_Store -exec rm -f -- {} +
|
|
|
|
git status -zu | while read -rd '' xy filename; do
|
|
if [[ $xy = "??" || $xy = D ]]; then
|
|
continue
|
|
fi
|
|
|
|
if [[ $filename = *.sh ]] || is_a "$filename" bash; then
|
|
if has shellcheck; then
|
|
shellcheck -s bash "$filename"
|
|
fi
|
|
elif [[ $filename = *.rb ]] || is_a "$filename" ruby; then
|
|
if has rubocop; then
|
|
rubocop -c "$(git rev-parse --show-toplevel)" "$filename"
|
|
fi
|
|
fi
|
|
done
|