Skip to content

Instantly share code, notes, and snippets.

@grzegorzblaszczyk
Created April 22, 2010 22:25
Show Gist options
  • Save grzegorzblaszczyk/375908 to your computer and use it in GitHub Desktop.
Save grzegorzblaszczyk/375908 to your computer and use it in GitHub Desktop.
#!/bin/bash
################################################################################
# Subversion daily report generator 1.0 #
# fast & dirty version by Grzegorz Blaszczyk <[email protected]> #
################################################################################
AFTER_HOURS=17
CAT=`which cat`
CUT=`which cut`
HEAD=`which head`
LS=`which ls`
SED=`which sed`
SVN=`which svn`
### DO NOT EDIT BELOW THIS LIKE UNLESS YOU KNOW WHAT YOU'RE DOIN' :) ###
function usage() {
echo "Report of your SVN activity during last/current day";
echo "Usage: $0 [svn_user] [from_date] [to_date]";
}
if [ "x$1" == "x--help" ]; then
usage;
exit;
fi
HOUR_OF_THE_DAY=`date +%H`
TOMORROW=`date +%Y-%m-%d --date=tomorrow`
TODAY=`date +%Y-%m-%d`
YESTERDAY=`date +%Y-%m-%d --date='1 days ago'`
if [ "x$1" == "x" ]; then
#Determine my Subversion username
SVN_REPO_HOST=`$CAT .svn/entries | $SED -n 6p | $CUT -f 1-3 -d "/"`
CURRENT_DIR=`pwd`
SVN_CREDENTIAL_DIR="$HOME/.subversion/auth/svn.username/"
cd $SVN_CREDENTIAL_DIR
for i in `ls -1`; do
HOST=`sed -n '4p' $SVN_CREDENTIAL_DIR""$i`
if [ "$HOST" == "$SVN_REPO_HOST" ]; then
SVN_USERNAME=`sed -n '8p' $SVN_CREDENTIAL_DIR""$i`
fi
done
ME=$SVN_USERNAME
cd $CURRENT_DIR
else
ME="$1"
fi
if [ "x$2" == "x" ]; then
if [ $HOUR_OF_THE_DAY -gt $AFTER_HOURS ]; then
FROM=${TODAY}
TO=${TOMORROW}
else
FROM=${YESTERDAY}
TO=${TODAY}
fi
else
FROM=$2;
TO=$3;
fi
$SVN log -r "{"$FROM"}:{"$TO"}" | grep -A 3 "| "$ME" |"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment