1 | #!/bin/bash
|
2 |
|
3 | FILE=""
|
4 | NULL="/dev/null"
|
5 | LIST=false
|
6 | TAG=$(node -e "console.log(require('./package.json').version)")
|
7 | tmp="$TMPDIR/changelog"
|
8 | name=`echo $(uname -s) | cut -c 1-10`;
|
9 |
|
10 | if [ $name == "MINGW32_NT" ]; then
|
11 | NULL="NUL";
|
12 | tmp="._changelog"
|
13 | fi
|
14 |
|
15 | while [ "$1" != "" ]; do
|
16 | case $1 in
|
17 | -l | --list )
|
18 | LIST=true
|
19 | ;;
|
20 | -t | --tag )
|
21 | TAG=$2
|
22 | shift
|
23 | ;;
|
24 | * )
|
25 | FILE=$1
|
26 | ;;
|
27 | esac
|
28 | shift
|
29 | done
|
30 |
|
31 | DATE=`date +'%Y-%m-%d'`
|
32 | HEAD="## $DATE, Version $TAG\n\n"
|
33 |
|
34 | if $LIST; then
|
35 | printf "$HEAD"
|
36 | lasttag=$(git rev-list --tags --max-count=1 2>$NULL)
|
37 | version=$(git describe --tags --abbrev=0 $lasttag 2>$NULL)
|
38 | export GIT_PAGER=cat
|
39 | if test -z "$version"; then
|
40 | git log --no-merges --pretty="format: * %s (%an)%n"
|
41 | else
|
42 | git log --no-merges --pretty="format: * %s (%an)%n" $version..
|
43 | fi
|
44 | exit
|
45 | fi
|
46 |
|
47 | CHANGELOG=$FILE
|
48 | if test "$CHANGELOG" = ""; then
|
49 | CHANGELOG=`ls | egrep 'change|history' -i|head -n1`
|
50 | if test "$CHANGELOG" = ""; then
|
51 | CHANGELOG='History.md';
|
52 | fi
|
53 | fi
|
54 |
|
55 | $0 --list >> $tmp
|
56 | printf '\n' >> $tmp
|
57 | if [ -f $CHANGELOG ]; then echo "" >> $tmp; cat $CHANGELOG >> $tmp; fi
|
58 | mv $tmp $CHANGELOG
|
59 | test -n "$EDITOR" && $EDITOR $CHANGELOG
|