]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
Add bash script to lint our variables
authorMark Otto <markdotto@gmail.com>
Sat, 1 Jul 2017 19:58:12 +0000 (12:58 -0700)
committerMark Otto <markd.otto@gmail.com>
Sun, 2 Jul 2017 05:57:19 +0000 (22:57 -0700)
build/lint-vars.sh [new file with mode: 0755]

diff --git a/build/lint-vars.sh b/build/lint-vars.sh
new file mode 100755 (executable)
index 0000000..ae7f716
--- /dev/null
@@ -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$'