IchHabRecht icon

[GIT] git write-changelog

IchHabRecht | PRO | 09/11/13 06:13:12 AM UTC | 0 ⭐ | 380 👁️ | Never ⏰ | []
Bash |

1.14 KB

|

None

|

0 👍

/

0 👎

#!/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

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎