Você já se perguntou quanto código escrevemos e removemos nos últimos 3 meses?
Eu fiz. E como eu amo o Git, também gosto do Awk. Eu descobri que poderíamos usar ambos para obter os dados que desejamos.
git log --numstat --pretty="%H" --since="3 months ago" --until="now" | awk 'NF==3 {if ( ! match($3, /.(css|js)$/) ) { plus+=$1; minus+=$2} } END {printf("+%d, -%dn", plus, minus)}'
Para os curiosos sobre o que está acontecendo lá:
git log --numstat --pretty="%H"
Usamos git-log para nos dar as linhas que foram alteradas em cada arquivo por commit. O formato é basicamente:
# # file_name.txt
# # file_name.txt
HASHCODE
Fazemos o git gerar os arquivos que foram alterados (adicionados, removidos e arquivo) por commit.
--since="3 months ago" --until="now"
Definimos um intervalo de tempo.
awk 'NF==3
Queremos apenas analisar as linhas que têm 3 campos (veja o formato acima).
{if ( ! match($3, /.(css|js)$/) ) {
Filtre arquivos, com um RegEx.
plus+=$1; minus+=$2} } END
Adicione os números fornecidos às variáveis de mais e menos.
{printf("+%d, -%dn", plus, minus)}'
Produza os totais.