Skip to content

Commit

Permalink
refactord git-effort(1)
Browse files Browse the repository at this point in the history
  • Loading branch information
tj committed Feb 9, 2012
1 parent b5c4154 commit a75f6db
Showing 1 changed file with 33 additions and 16 deletions.
49 changes: 33 additions & 16 deletions bin/git-effort
Original file line number Diff line number Diff line change
Expand Up @@ -2,45 +2,62 @@

files=`git ls-files`
above='0'
color=

#
# get date for the given <commit>
#

date() {
git log --pretty='format: %ai' $1 | cut -d ' ' -f 2
}

#
# get active days for the given <commit>
#

active_days() {
date $1 | uniq | awk '
{ sum += 1 }
END { print sum }
'
}

if test "$1" = "--above"; then
above=$2
fi
#
# set 'color' based on the given <num>
#

color_for() {
test $1 -gt 10 && color='33'
test $1 -gt 25 && color='33;1'
test $1 -gt 50 && color='93'
test $1 -gt 75 && color='93;1'
test $1 -gt 100 && color='31'
test $1 -gt 125 && color='31;1'
test $1 -gt 150 && color='91'
test $1 -gt 200 && color='91;1'
}

# --above <n-commits>

test "$1" = "--above" && above=$2

# heading

echo
printf " %-45s %-10s %s\n" 'file' 'commits' 'active days'
echo

# loop files

for file in $files; do
commits=`git log --oneline $file | wc -l`
color='90'

if test $commits -le $above; then
continue
fi
test $commits -le $above && continue

active=`active_days $file`

test $commits -gt 10 && color='33'
test $commits -gt 25 && color='33;1'
test $commits -gt 50 && color='93'
test $commits -gt 75 && color='93;1'
test $commits -gt 100 && color='31'
test $commits -gt 125 && color='31;1'
test $commits -gt 150 && color='91'
test $commits -gt 200 && color='91;1'

color_for $commits
printf " \033[${color}m%-45s %-10d %d\033[0m\n" $file $commits $active
done
echo

0 comments on commit a75f6db

Please sign in to comment.