|
|
@@ -0,0 +1,101 @@ |
|
|
#!/bin/bash |
|
|
|
|
|
## v1.0.6 |
|
|
## this script will gernerate css stats |
|
|
|
|
|
### example output |
|
|
|
|
|
# CSS STATS |
|
|
# ---------- |
|
|
# Floats: 132 |
|
|
# Headings: 107 |
|
|
# Margins: 432 |
|
|
# Paddings: 463 |
|
|
# Font-Sizes: 170 |
|
|
# Importants: 56 |
|
|
|
|
|
|
|
|
echo 'CSS STATS' |
|
|
echo '=========' |
|
|
echo |
|
|
|
|
|
echo 'General: ' |
|
|
echo '----------' |
|
|
|
|
|
## number of files |
|
|
echo -n "Number of CSS files: " |
|
|
ack --css -f | wc -l |
|
|
## number of lines |
|
|
# ack --nogroup --css --passthru * | wc -l | xargs echo "Number of Lines of Code (LoC)" |
|
|
## longest file |
|
|
echo 'File Length (LoC):' |
|
|
find . -iname "*.css" | xargs wc -l | sort -r |
|
|
echo |
|
|
echo 'File Size (KBytes)' |
|
|
# find . -iname "*.css" | xargs ls -l | awk '{print $5 "\t" $9}' | sort -nr ## Bytes |
|
|
# find . -iname "*.css" | xargs ls -l | awk '{printf("%.1fK\t", $5 / 1024); print "\t" $9}' | sort -nr ## KB |
|
|
find . -iname "*.css" -print0 | xargs -0 du -hsc | sort -nr ## block size |
|
|
# find . -iname "*.css" -print0 | du -hsc ## block size |
|
|
# stat -f "%z Bytes" stats.sh ## actual file size in bytes |
|
|
|
|
|
echo |
|
|
|
|
|
echo 'Props: ' |
|
|
echo '----------' |
|
|
## append search results |
|
|
# echo -n "test:" |
|
|
echo -n "Floats: " |
|
|
ack --nogroup --css float | wc -l |
|
|
echo -n "Headings: " |
|
|
ack --nogroup --css h[1-6] | wc -l |
|
|
|
|
|
echo -n "Margins: " |
|
|
ack --nogroup --css margin | wc -l |
|
|
echo -n "Margins 0: " |
|
|
ack --nogroup --css --match="margin-?(top|right|bottom|left)?\s*:\s*0" | wc -l |
|
|
|
|
|
echo -n "Paddings: " |
|
|
ack --nogroup --css padding | wc -l |
|
|
echo -n "Padding 0: " |
|
|
ack --nogroup --css --match="padding-?(top|right|bottom|left)?\s*:\s*0" | wc -l |
|
|
|
|
|
echo -n "Font-Sizes: " |
|
|
ack --nogroup --css font-size | wc -l |
|
|
echo -n "Importants: " |
|
|
ack --nogroup --css important | wc -l |
|
|
echo |
|
|
|
|
|
## colors |
|
|
echo 'Colors:' |
|
|
echo '----------' |
|
|
echo -n "Hex: " |
|
|
ack --nogroup --css --match="#[0-9a-fA-F]{3,6}" -o -h | wc -l |
|
|
echo -n "RGB(a): " |
|
|
ack --nogroup --css --match="rgba?\w*\(.*\)" -o -h | wc -l |
|
|
echo |
|
|
|
|
|
### unique |
|
|
echo 'Unique Colors:' |
|
|
echo '----------' |
|
|
echo -n 'Hex: ' |
|
|
ack --nogroup --css --match="#[0-9a-fA-F]{3,6}" -o -h | sort | uniq -i -c | wc -l |
|
|
echo |
|
|
ack --nogroup --css --match="#[0-9a-fA-F]{3,6}" -o -h | sort | uniq -i -c | sort -r |
|
|
echo |
|
|
echo -n 'RGB(a): ' |
|
|
ack --nogroup --css --match="rgba?\w*\(.*\)" -o -h | sort | uniq -i -c | wc -l |
|
|
echo |
|
|
ack --nogroup --css --match="rgba?\w*\(.*\)" -o -h | sort | uniq -i -c | sort -r |
|
|
echo |
|
|
|
|
|
## Images |
|
|
echo "Images:" |
|
|
echo '----------' |
|
|
echo -n "URLs:" |
|
|
ack --nogroup --css --match="url\w?\(.*\)" -o -h | wc -l |
|
|
### unique urls |
|
|
echo -n "Unique URLs:" |
|
|
ack --nogroup --css --match="url\w?\(.*\)" -o -h | sort | uniq -i -c | wc -l |
|
|
echo |
|
|
ack --nogroup --css --match="url\w?\(.*\)" -o -h | sort | uniq -i -c | sort -r |
|
|
|