From fe5200c8383c2f415a207854827a879aec21fdfa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oskar=20Rasie=C5=84ski?= Date: Thu, 27 Nov 2025 16:08:36 +0100 Subject: [PATCH] added personal line counting util --- countlines.bat | 42 ++++++++++++++++++++++++++++++++++++++++++ countlines.sh | 28 ++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 countlines.bat create mode 100644 countlines.sh diff --git a/countlines.bat b/countlines.bat new file mode 100644 index 0000000..bc3d524 --- /dev/null +++ b/countlines.bat @@ -0,0 +1,42 @@ +@echo off +setlocal enabledelayedexpansion + +for /f "delims=" %%i in ('git config user.email') do set AUTHOR=%%i +echo Checking commit stats for %AUTHOR%... +echo. + +echo === Last 7 days (all .java files) === +git log --author="%AUTHOR%" --since="7 days ago" --pretty=tformat: --numstat | findstr "\.java" > temp_java.txt + +set added=0 +set removed=0 + +for /f "tokens=1,2" %%a in (temp_java.txt) do ( + set /a added+=%%a + set /a removed+=%%b +) + +set /a net=added-removed +echo Lines added in .java: %added% +echo Lines removed in .java: %removed% +echo Net lines: %net% +echo. + +echo === All time (excluding *Test.java) === +git log --author="%AUTHOR%" --pretty=tformat: --numstat -- . ":(exclude)*Test.java" | findstr "\.java" > temp_java.txt + +set added=0 +set removed=0 + +for /f "tokens=1,2" %%a in (temp_java.txt) do ( + set /a added+=%%a + set /a removed+=%%b +) + +set /a net=added-removed +echo Lines added in .java (excluding *Test.java): %added% +echo Lines removed in .java (excluding *Test.java): %removed% +echo Net lines: %net% + +del temp_java.txt +endlocal diff --git a/countlines.sh b/countlines.sh new file mode 100644 index 0000000..d31453d --- /dev/null +++ b/countlines.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +AUTHOR=$(git config user.email) +echo -e "Checking commit stats for \033[38:5:2m$AUTHOR\033[0m..." + +# Get numstat for commits by author, filter only .java lines +git log --author="$AUTHOR" --since="7 days ago" --pretty=tformat: --numstat \ + | awk ' + $3 ~ /\.java$/ { + added += $1 + removed += $2 + } + END { + print "Lines added in .java:", added + print "Lines removed in .java:", removed + print "Net lines:", added - removed + }' +git log --author="$AUTHOR" --pretty=tformat: --numstat -- . ':(exclude)*Test.java' \ + | awk ' + $3 ~ /\.java$/ { + added += $1 + removed += $2 + } + END { + print "Lines added in .java (excluding *Test.java):", added + print "Lines removed in .java (excluding *Test.java):", removed + print "Net lines:", added - removed + }'