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