Skip to content

Instantly share code, notes, and snippets.

@ilius
Last active November 29, 2021 08:10
Show Gist options
  • Save ilius/59b6f666a8ae1a8d8982 to your computer and use it in GitHub Desktop.
Save ilius/59b6f666a8ae1a8d8982 to your computer and use it in GitHub Desktop.
#!/bin/bash
TOTAL=0
OPTS="-type f -and -not -path '*/.git/*'"
# find . $OPTS -exec file --brief --mime-type \;
LOC=`find . $OPTS -name '*.go' -exec cat '{}' \; | grep -vxch '\s*'`
[[ $LOC -gt 0 ]] && echo -e "$LOC\tGo" && TOTAL=$[TOTAL+LOC]
LOC=`find . $OPTS -name '*.rs' -exec cat '{}' \; | grep -vxch '\s*'`
[[ $LOC -gt 0 ]] && echo -e "$LOC\tRust" && TOTAL=$[TOTAL+LOC]
LOC=`find . $OPTS \( \
-name '*.py' -or \
-name '*.pyw' \) \
-exec cat '{}' \; | grep -vxch '\s*'`
[[ $LOC -gt 0 ]] && echo -e "$LOC\tPython" && TOTAL=$[TOTAL+LOC]
LOC=`find . $OPTS -name '*.proto' -exec cat '{}' \; | grep -vxch '\s*'`
[[ $LOC -gt 0 ]] && echo -e "$LOC\tProtobuf" && TOTAL=$[TOTAL+LOC]
LOC=`find $OPTS -exec bash -c 'grep -rP "^#!.*\/bin\/bash" $1 1> /dev/null && cat $1' _ {} \; | grep -vxch '\s*'`
[[ $LOC -gt 0 ]] && echo -e "$LOC\tShell (bash)" && TOTAL=$[TOTAL+LOC]
LOC=`find . $OPTS \( \
-name '*.pl' -or \
-name '*.m' \) \
-exec cat '{}' \; | grep -vxch '\s*'`
[[ $LOC -gt 0 ]] && echo -e "$LOC\tPerl" && TOTAL=$[TOTAL+LOC]
LOC=`find . $OPTS -name '*.js' -exec cat '{}' \; | grep -vxch '\s*'`
[[ $LOC -gt 0 ]] && echo -e "$LOC\tJavaScript" && TOTAL=$[TOTAL+LOC]
LOC=`find . $OPTS \
-name '*.html' \
-exec cat '{}' \; | grep -vxch '\s*'`
[[ $LOC -gt 0 ]] && echo -e "$LOC\tHTML" && TOTAL=$[TOTAL+LOC]
LOC=`find . $OPTS \
-name '*.css' \
-exec cat '{}' \; | grep -vxch '\s*'`
[[ $LOC -gt 0 ]] && echo -e "$LOC\tCSS" && TOTAL=$[TOTAL+LOC]
LOC=`find . $OPTS -name '*.php' -exec cat '{}' \; | grep -vxch '\s*'`
[[ $LOC -gt 0 ]] && echo -e "$LOC\tPHP" && TOTAL=$[TOTAL+LOC]
LOC=`find . $OPTS -name '*.tpl' -exec cat '{}' \; | grep -vxch '\s*'`
[[ $LOC -gt 0 ]] && echo -e "$LOC\tTemplates (.tpl)" && TOTAL=$[TOTAL+LOC]
LOC=`find . $OPTS -name '*.java' -exec cat '{}' \; | grep -vxch '\s*'`
[[ $LOC -gt 0 ]] && echo -e "$LOC\tJava" && TOTAL=$[TOTAL+LOC]
LOC=`find . $OPTS -name '*.kt' -exec cat '{}' \; | grep -vxch '\s*'`
[[ $LOC -gt 0 ]] && echo -e "$LOC\tKotlin" && TOTAL=$[TOTAL+LOC]
LOC=`find . $OPTS \( \
-name '*.c' -or \
-name '*.cpp' -or \
-name '*.h' -or \
-name '*.hpp' \) \
-exec cat '{}' \; | grep -vxch '\s*'`
[[ $LOC -gt 0 ]] && echo -e "$LOC\tC/C++" && TOTAL=$[TOTAL+LOC]
LOC=`find . $OPTS -name '*.vala' -exec cat '{}' \; | grep -vxch '\s*'`
[[ $LOC -gt 0 ]] && echo -e "$LOC\tVala" && TOTAL=$[TOTAL+LOC]
LOC=`find . $OPTS -name '*.lua' -exec cat '{}' \; | grep -vxch '\s*'`
[[ $LOC -gt 0 ]] && echo -e "$LOC\tLua" && TOTAL=$[TOTAL+LOC]
echo '-------------'
echo -e "$TOTAL\tTotal"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment