57 lines
1.3 KiB
Text
57 lines
1.3 KiB
Text
|
#!/bin/sh
|
||
|
|
||
|
NOW=$(date +%s)
|
||
|
SRCDIR="$PWD"
|
||
|
WORKDIR="/tmp/openbox.$NOW"
|
||
|
TESTDIR="$WORKDIR/.test"
|
||
|
|
||
|
clean() {
|
||
|
cd "$SRCDIR"
|
||
|
if test -d "$WORKDIR"; then
|
||
|
chmod -R +w "$WORKDIR"
|
||
|
rm -r -f "$WORKDIR"
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
error() {
|
||
|
echo "error: $1"
|
||
|
test -n "$2" && echo "$2"
|
||
|
clean
|
||
|
exit 1
|
||
|
}
|
||
|
|
||
|
RELEASE_SHA=$(git rev-parse "$REV")
|
||
|
test $? = 0 || error "revision $REV not found"
|
||
|
|
||
|
#NON_MASTER=$(git rev-list $RELEASE_SHA ^master)
|
||
|
#test $? = 0 || error "git rev-list failed"
|
||
|
#test -z $NON_MASTER || error "REVISION contains commits not on master"
|
||
|
|
||
|
git new-workdir "$SRCDIR" "$WORKDIR"
|
||
|
test $? = 0 || error "git-new-workdir failed"
|
||
|
|
||
|
echo "working in $WORKDIR"
|
||
|
|
||
|
cd "$WORKDIR"
|
||
|
test $? = 0 || error "cd to $WORKDIR failed"
|
||
|
|
||
|
git checkout -q $RELEASE_SHA
|
||
|
test $? = 0 || error "git-checkout failed"
|
||
|
|
||
|
# get last release
|
||
|
if test -z "$LAST"; then
|
||
|
LAST=$(git describe --match 'release-*' --abbrev=0 $REV)
|
||
|
test $? = 0 || \
|
||
|
error "unable to find last release"
|
||
|
echo "Using previous release as $LAST"
|
||
|
fi
|
||
|
|
||
|
H="$(head -1 CHANGELOG|cut -d: -f 1)"
|
||
|
test $H = $VERSION ||
|
||
|
error "CHANGELOG does not contain version $VERSION"
|
||
|
|
||
|
CL="$(cat CHANGELOG|sed -n /^$VERSION:\$/,/^\$/p|tail -n +2|head -n -1)"
|
||
|
CLNOWRAP=$(echo "$CL" \
|
||
|
|sed -e "s/^ \*/*/"|sed -n '1h;1!H;${;g;s/\n / /g;p;}')
|
||
|
SHORTLOG="$(git shortlog --no-merges $LAST..$REV)"
|