diff options
Diffstat (limited to 'aux/workflow/dist.sh')
-rwxr-xr-x | aux/workflow/dist.sh | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/aux/workflow/dist.sh b/aux/workflow/dist.sh deleted file mode 100755 index 68f8849..0000000 --- a/aux/workflow/dist.sh +++ /dev/null @@ -1,112 +0,0 @@ -#!/bin/sh -set -eu - -PROJECT_UC= -while getopts 'd:V:n:N:m:' flag; do - case "$flag" in - d) - DATE="$OPTARG" - ;; - V) - VVERSION="v$OPTARG" - ;; - n) - PROJECT="$OPTARG" - ;; - N) - PROJECT_UC="$OPTARG" - ;; - m) - MAILING_LIST="$OPTARG" - ;; - *) - exit 2 - ;; - esac -done -shift $((OPTIND - 1)) - -assert_arg() { - if [ -z "$1" ]; then - echo "Missing $2" >&2 - exit 2 - fi -} - -assert_arg "${DATE:-}" '-d DATE' -assert_arg "${VVERSION:-}" '-V VERSION' -assert_arg "${PROJECT:-}" '-n PROJECT' -assert_arg "${MAILING_LIST:-}" '-m MAILING_LIST' - -if [ -z "${PROJECT_UC:-}" ]; then - PROJECT_UC="$PROJECT" -fi - - -if [ "$(git rev-parse --abbrev-ref HEAD)" != 'main' ]; then - echo 'Not on branch "main".' >&2 - exit 1 -fi - -if git show "$VVERSION" 1>/dev/null 2>/dev/null; then - echo "Version '$VVERSION' already exists." >&2 - exit 1 -fi - -if [ "v$(awk '/^VERSION *=/{print $3; exit}' Makefile)" != "$VVERSION" ]; then - echo "Version '$VVERSION' mismatch with \$(VERSION) in Makefile." >&2 - echo 'Make sure to invoke this script with "make dist".' >&2 - exit 1 -fi - -if ! printf '%s\n%s\n' "$(git tag)" "$VVERSION" | sort -nct. -k1 -k2 -k3; then - echo 'New tag is not bigger than existing ones.' >&2 - exit 1 -fi - -if [ "$DATE" != "$(git log -1 --format=%cd --date=short HEAD)" ]; then - echo "Date '$DATE' is not up-to-date." >&2 - exit 1 -fi - -if [ "$(awk '/^DATE *=/{print $3; exit}' Makefile)" != "$DATE" ]; then - echo "Date '$DATE' mismatch with \$(DATE) in Makefile." >&2 - echo 'Make sure to invoke this script with "make dist".' >&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 - -make clean -env ASSERT_NO_MISSING_TRANSLATIONS=1 make dev-check EXTRA_VERSION="$VVERSION" - -if ! (git diff --quiet && git diff --quiet --staged); then - echo 'Dirty repository.' - exit 1 -fi - - -git tag "$VVERSION" -sh aux/workflow/sign-tarballs.sh -n "$PROJECT" - - -printf 'Publish version? [Y/n]: ' >&2 -read -r publish - -if [ "$publish" = 'n' ]; then - cat <<EOF >&2 -Now push the tag and the signature before pushing the commit: - -git push origin refs/notes/signatures/tar.gz -o skip-ci --no-verify -git push --tags -o skip-ci --no-verify -git push - -EOF -else - git push origin refs/notes/signatures/tar.gz -o skip-ci --no-verify - git push --tags -o skip-ci --no-verify - git push -fi |