hooks: Add check-clean-files-txt.sh
parent
c731e45770
commit
d0aa9cb542
|
|
@ -43,3 +43,8 @@ repos:
|
||||||
language: system
|
language: system
|
||||||
files: "\\.bash$"
|
files: "\\.bash$"
|
||||||
types: [file]
|
types: [file]
|
||||||
|
- id: clean-files-txt
|
||||||
|
name: Check that clean_files.txt is sorted alphabetically.
|
||||||
|
entry: ./hooks/check-clean-files-txt.sh
|
||||||
|
language: system
|
||||||
|
files: clean_files.txt
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,35 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
file=$1
|
||||||
|
# Should only be run on clean_files.txt
|
||||||
|
if [ "$file" != "clean_files.txt" ]; then
|
||||||
|
echo "Please run this script on clean_files.txt only!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
function compare_lines() {
|
||||||
|
prev=""
|
||||||
|
while read -r line; do
|
||||||
|
# Skip unimportant lines
|
||||||
|
[[ $line =~ "#" ]] && continue
|
||||||
|
[[ $line == "" ]] && continue
|
||||||
|
# Actual check
|
||||||
|
if [[ $prev > $line ]]; then
|
||||||
|
echo "$line should be before $prev"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
prev=$line
|
||||||
|
done <<< "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Test root files
|
||||||
|
compare_lines "$(grep -v "/" "$file")"
|
||||||
|
|
||||||
|
# Test root directory
|
||||||
|
compare_lines "$(grep "/$" "$file")"
|
||||||
|
|
||||||
|
# Test non root directories
|
||||||
|
compare_lines "$(grep "/." "$file")"
|
||||||
|
|
||||||
|
# Yay, all good!
|
||||||
|
exit 0
|
||||||
Loading…
Reference in New Issue