diff options
author | Ben Rog-Wilhelm <zorba-github@pavlovian.net> | 2023-07-01 08:32:30 -0500 |
---|---|---|
committer | Ben Rog-Wilhelm <zorba-github@pavlovian.net> | 2023-07-01 08:41:36 -0500 |
commit | 7ea171adca8d28d10aae68cfe8f36094683bc491 (patch) | |
tree | 24fb62133e1d4d92cc790c7bc006e6dce2bcd41a /misc | |
parent | 90f3992036b2f2fc1b4d08d1cc854d9cd62f6930 (diff) | |
download | redot-engine-7ea171adca8d28d10aae68cfe8f36094683bc491.tar.gz |
Add static check for overzealous .gitignores.
Diffstat (limited to 'misc')
-rw-r--r-- | misc/scripts/gitignore_check.sh | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/misc/scripts/gitignore_check.sh b/misc/scripts/gitignore_check.sh new file mode 100644 index 0000000000..f162e25391 --- /dev/null +++ b/misc/scripts/gitignore_check.sh @@ -0,0 +1,26 @@ +set -uo pipefail +shopt -s globstar + +echo -e ".gitignore validation..." + +# Get a list of files that exist in the repo but are ignored. + +# The --verbose flag also includes files un-ignored via ! prefixes. +# We filter those out with a somewhat awkward `awk` directive. + # (Explanation: Split each line by : delimiters, + # see if the actual gitignore line shown in the third field starts with !, + # if it doesn't, print it.) + +# ignorecase for the sake of Windows users. + +output=$(git -c core.ignorecase=true check-ignore --verbose --no-index **/* | \ + awk -F ':' '{ if ($3 !~ /^!/) print $0 }') + +# Then we take this result and return success if it's empty. +if [ -z "$output" ]; then + exit 0 +else + # And print the result if it isn't. + echo "$output" + exit 1 +fi |