#!/bin/sh set -eu DATE="$1" VVERSION="v$2" PROJECT_UC="$3" PROJECT="$4" MAILING_LIST="$5" if git show "$VVERSION" 1>/dev/null 2>/dev/null; then echo "Version '$VVERSION' already exists." >&2 exit 1 fi sh aux/workflow/assert-changelog.sh "$PROJECT_UC" "$PROJECT" "$VVERSION" sh aux/workflow/assert-readme.sh "$PROJECT" "$MAILING_LIST" "$VVERSION" if [ "$DATE" != "$(git log -1 --format=%cd --date=short HEAD)" ]; then echo "Date '$DATE' is not up-to-date." >&2 exit 1 fi if [ "Release $VVERSION" != "$(git log --format=%B -1 HEAD | head -n1)" ]; then echo "Commit message isn't 'Release $VVERSION'." >&2 exit 1 fi if ! (git diff --quiet && git diff --quiet --staged); then echo 'Dirty repository.' exit 1 fi git tag "$VVERSION" sh aux/workflow/sign-tarballs.sh "$PROJECT"