lint-vars.sh 868 Bytes
Newer Older
Jonas Heinrich's avatar
Jonas Heinrich committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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$'