hooks: Add check-clean-files-txt.sh

pull/1873/head
Noah Gorny 2021-04-22 01:38:11 +03:00
parent c731e45770
commit d0aa9cb542
2 changed files with 40 additions and 0 deletions

View File

@ -43,3 +43,8 @@ repos:
language: system
files: "\\.bash$"
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

View File

@ -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