Fixing changelog generation
[geeqie.git] / gen_changelog.sh
1 #!/bin/bash
2
3 # Script to update ChangeLog file,
4 # it keeps "pre-svn" history and inserts git log at top,
5 # it uses C locale for date format.
6 # It has to be run where ChangeLog is.
7 # Old ChangeLog is saved as ChangeLog.bak
8 #
9 # ChangeLog.html is also created
10
11 [ ! -e "ChangeLog" ] && exit 1
12 [ ! -x "$(command -v git)" ] && exit 0
13
14 tail -6614 ChangeLog > ChangeLog.$$.old && \
15 LC_ALL=C git log --no-merges --no-notes --encoding=UTF-8 --no-follow --use-mailmap 1b58572cf58e9d2d4a0305108395dab5c66d3a09..HEAD > ChangeLog.$$.new && \
16 cat ChangeLog.$$.old >> ChangeLog.$$.new && \
17 mv -f ChangeLog ChangeLog.bak && \
18 mv -f ChangeLog.$$.new ChangeLog
19
20 rm -f ChangeLog.$$.old
21
22
23 echo "<textarea rows='6614' cols='100'>" >ChangeLog.$$.old.html && \
24 tail -6613 ChangeLog >> ChangeLog.$$.old.html && \
25 echo "</textarea>" >>ChangeLog.$$.old.html && \
26 echo "<html>" > ChangeLog.$$.new.html && \
27 echo "<body>" >> ChangeLog.$$.new.html && \
28 echo "<ul>" >> ChangeLog.$$.new.html && \
29 LC_ALL=C git log --no-merges --no-notes --encoding=UTF-8 --date=format:'%Y-%m-%d' --no-follow --use-mailmap --pretty=format:"<li><a href=\"http://geeqie.org/cgi-bin/gitweb.cgi?p=geeqie.git;a=commit;h=%H\">view commit </a></li><p>Author: %aN<br>Date: %ad<br><textarea rows=4 cols=100>%s %n%n%b</textarea><br><br></p>" 1b58572cf58e9d2d4a0305108395dab5c66d3a09..HEAD >> ChangeLog.$$.new.html && \
30 echo "" >> ChangeLog.$$.new.html && \
31 cat ChangeLog.$$.old.html >> ChangeLog.$$.new.html && \
32 echo "</ul>" >> ChangeLog.$$.new.html && \
33 echo "</body>" >> ChangeLog.$$.new.html && \
34 echo "</html>" >> ChangeLog.$$.new.html
35 [ -e ChangeLog.html ] && mv -f ChangeLog.html ChangeLog.html.bak
36 mv -f ChangeLog.$$.new.html ChangeLog.html
37
38 rm -f ChangeLog.$$.old.html
39
40 exit 0