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