]> arthur.barton.de Git - netdata.git/blob - packaging/update-tags
updated configs.signatures
[netdata.git] / packaging / update-tags
1 #!/bin/bash
2
3 #
4 # update-tags
5 #
6 scriptname=update-tags
7 if ! MYTMP=$(mktemp -d -t $scriptname-XXXXXX)
8 then
9             echo >&2
10             echo >&2
11             echo >&2 "Cannot create temporary directory."
12             echo >&2
13             exit 1
14 fi
15
16 cleanup() {
17   status=$?
18   if [ $status -ne 0 ]
19   then
20     echo "FAILED."
21     if [ "$TAGVER" ]
22     then
23       git tag -d "$TAGVER"
24     fi
25     echo "To re-run manually:"
26     echo "  git diff HEAD^ | ./packaging/update-tags -"
27     echo "To undo commit:"
28     echo "  git reset HEAD^"
29   fi
30   rm -rf "${MYTMP}"
31   exit $status
32 }
33
34 # clean up if we get stopped by Crtl-C or forced logout or normal exit
35 trap cleanup INT
36 trap cleanup HUP
37 trap cleanup 0
38
39 set -e
40 if [ "$1" = "--debug" ]
41 then
42   set -x
43   shift
44 fi
45
46 if [ $# -lt 1 ]
47 then
48   echo "Use only from .git/hooks/post-commit"
49   exit 1
50 fi
51
52 if [ ! -x packaging/update-tags ]
53 then
54   echo "Must be run from base directory"
55   exit 1
56 fi
57
58 if [ "$1" = "-" ]
59 then
60   from_cache=Y
61   f=""
62 else
63   from_cache=
64   for f in "$@"
65   do
66     if [ ! -f "$f" ]
67     then
68       echo "$f: no such file"
69       exit 1
70     fi
71   done
72
73   git status --porcelain "$@" | grep "^?" | cut -c4- > $MYTMP/missing.lst
74
75   while read missing
76   do
77      git update-index --add --cacheinfo \
78           100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 $missing
79   done < $MYTMP/missing.lst
80
81   empty_tree=4b825dc642cb6eb9a060e54bf8d69288fbee4904
82   git diff $empty_tree -- "$@" > $MYTMP/diff.full
83   f=$MYTMP/diff.full
84
85   while read missing
86   do
87      git update-index --force-remove $missing
88   done < $MYTMP/missing.lst
89 fi
90
91 > $MYTMP/diff.lst sed -e "/^+++ b/{p;s:^+++ b/::;w $MYTMP/files.lst" -e "d;}" $f
92
93 #cat $MYTMP/diff.lst
94 #cat $MYTMP/files.lst
95
96 dirname="${0%/*}"
97 if [ "$dirname" = "$0" ]; then dirname="."; fi
98 source $dirname/packaging.functions
99
100 status=0
101 while read filename
102 do
103   #echo Checking $filename
104   case $filename in
105     configure.ac|ChangeLog)
106       mkdir -p $MYTMP/files
107       git show HEAD:configure.ac > $MYTMP/files/configure.ac
108       version=`get_configure_ac_version`
109       case "$(match_version $version)" in
110          prerelease|candidate|release)
111            do_release=Y
112          ;;
113       esac
114     ;;
115     *)
116       #echo "No checks found for $filename"
117       :
118     ;;
119   esac
120 done < $MYTMP/files.lst
121
122 if [ "$do_release" ]
123 then
124   echo "Tagging new release with:"
125   echo "   git tag -s \"v$version\" -m \"Release version $version\""
126   git tag -s "v$version" -m "Release version $version"
127   TAGVER="v$version"
128
129   splitver confmaj confmin conffix confsfx "$version"
130   if [ ! "$confsfx" ]
131   then
132     echo "Incrementing version in configure.ac:"
133     conffix=`expr $conffix + 1`
134     sed -i -e "s/define(\[VERSION_FIX\], \[.*])/define([VERSION_FIX], [$conffix])/" configure.ac
135   fi
136
137   echo "Resetting suffix in configure.ac:"
138   sed -i -e 's/define(\[VERSION_SUFFIX\], \[.*])/define([VERSION_SUFFIX], [_rolling])/' configure.ac
139   sed -i -e 's:^PACKAGE_RPM_RELEASE=.*:PACKAGE_RPM_RELEASE="0.0.$(echo VERSION_SUFFIX | sed s/^_//)":' configure.ac
140
141   echo "Committing new configure.ac:"
142   git commit --no-verify -m "Post release $version" -- configure.ac
143   echo ""
144   echo "Verify, then:"
145   echo "  git push origin"
146   echo "  git push origin tag $TAGVER"
147 fi
148
149 exit $status