From c90cef019ae3b2b4ccdb52997ee96189a5fd6da0 Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Sat, 1 Jul 2017 12:58:12 -0700 Subject: [PATCH] Add bash script to lint our variables --- build/lint-vars.sh | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100755 build/lint-vars.sh diff --git a/build/lint-vars.sh b/build/lint-vars.sh new file mode 100755 index 0000000000..ae7f716c1f --- /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$'