#!/bin/sh set -e type git || exit 1 test -s VERSION.txt && test -s changelog && test -d ../qt export TVERSION="$1" commit=HEAD test -z "$2" || commit="$2" if test -z "$TVERSION"; then echo "usage: $0 [commit]" echo " if commit is ommitted, 'HEAD' is used" exit 1 fi TAG="RELEASE.$TVERSION" if git tag | grep "$TAG"; then echo Tag $TVERSION already exists exit 1 fi if ! git diff-index --quiet HEAD --; then echo "You have local changes, please commit, reset or stash them" exit 1 fi lasttag=$(git describe --abbrev=0 HEAD) unset unchanged for i in changelog README.md; do if git diff --quiet "$lasttag" -- $i; then echo "File $i untouched since $lasttag" unchanged="x" fi done if test -n "$unchanged"; then echo "Are you sure to not change the file(s) above?" read a fi x=$(git grep "^xca $TVERSION " changelog || git grep "^$TVERSION\$" VERSION.txt || :) if test -n "$x"; then echo "$x" echo Release $TVERSION already exists exit 1 fi echo "$TVERSION" > VERSION.txt ( MSG=$(LANG=C date +"xca $TVERSION %a %b %d %Y") echo "$MSG" head -c ${#MSG} /dev/zero | tr '\0' '-' echo '\n' cat changelog ) > changelog.new mv changelog.new changelog sed -i "s|\(\)|\1\n |"\ misc/de.hohnstaedt.xca.metainfo.xml git commit VERSION.txt changelog misc/de.hohnstaedt.xca.metainfo.xml \ -m "Prepare XCA $TVERSION" git tag -a "$TAG" -m "Release version $TVERSION" # Create the tar.gz git archive --format=tar.gz --prefix=xca-$TVERSION/ --output xca-$TVERSION.tar.gz "$TAG" releasedir="$HOME/xca-$TVERSION" mkdir -p "$releasedir" cp xca-$TVERSION.tar.gz "$releasedir"