aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbuild/lint-vars.sh28
1 files changed, 28 insertions, 0 deletions
diff --git a/build/lint-vars.sh b/build/lint-vars.sh
new file mode 100755
index 000000000..ae7f716c1
--- /dev/null
+++ b/build/lint-vars.sh
@@ -0,0 +1,28 @@
+#!/usr/bin/env bash
+#
+# Approach:
+# 1. Find variable declaration in the form of "$my-var: anyvalue"
+# 2. Loop through found variables and find occurrences of each variable in all sass files
+# 3. Filter out vars that occurred only once
+#
+# Run from command line with `build/lint-vars.sh scss`.
+#
+# Source: https://gist.github.com/badsyntax/6193491
+
+if [ -z "$1" ]; then
+ echo "Please specify a directory as the first argument."
+ exit 1
+fi
+if [ ! -d "$1" ]; then
+ echo "Not a valid directory."
+ exit 1
+fi
+
+echo "Finding unused variables. This might take some time..."
+
+vars=$(find "$1" -type f -name "*.scss" -exec grep --color=never -h '^$[a-zA-Z0-9_-][^:]*' {} \; | sed 's/$\([a-zA-Z0-9_-][^:]*\).*/\1/')
+
+for var in $vars; do
+ echo -n "Occurrences of \"\$$var\":"
+ find "$1" -type f -name "*.scss" -exec grep --color=never -h "$var" "{}" \; | wc -l
+done | grep ' 1$'