#!/bin/sh
WRITE=false
FILE="ChangeLog"
GITPATH="master..HEAD"
while [ "$1" != "" ]; do
case $1 in
-w )
WRITE=true
;;
-f )
shift
FILE="$1"
;;
* )
GITPATH="$1"
;;
esac
shift
done
if `git branch --no-color | grep -q '^\*'`; then
OUTPUT=""
HEAD=""
BRANCH=`git branch --no-color | grep '^\*' | grep -v 'no branch' | sed 's/^* //g' | sed 's/.*\///g' | grep '^[0-9][0-9.]'`
if [ "$BRANCH" != "" ]; then
DATE=`date -I`
DIR=${PWD##*/}
USER=`git config --get user.name`
HEAD="$DATE [RELEASE] Release of $DIR $BRANCH ($USER)"$'\n'
fi
LOG=`git log --pretty=format:"%ad %h %s (%an)" --date=short --no-merges $GITPATH`
if [ "$LOG" != "" ]; then
OUTPUT=$HEAD$LOG$'\n'$'\n';
fi
if [ -f $FILE ]; then
OUTPUT=$OUTPUT"`cat $FILE`"
fi
if $WRITE; then
echo "$OUTPUT" > $FILE
OUTPUT=$OUTPUT$'\n'$'\n'"File $FILE was written."
fi
echo "$OUTPUT"
fi
# USAGE
# git write-changelog [-w] [-f <filename>] [<path>]
# git write-changelog [-w] [-f ChangeLog] [master..HEAD]
# -w: Write log to file
# -f <filename>: Name of changelog file
# path: path for git log
Comments
0 B
|👍
/👎