diff options
Diffstat (limited to 'scripts/do-release.sh')
-rwxr-xr-x | scripts/do-release.sh | 95 |
1 files changed, 65 insertions, 30 deletions
diff --git a/scripts/do-release.sh b/scripts/do-release.sh index 352fcf1..3f68497 100755 --- a/scripts/do-release.sh +++ b/scripts/do-release.sh @@ -9,38 +9,73 @@ set -e -u -o pipefail cd "$(dirname "$0")/.." -if [ $# != 1 ]; then - echo "Usage: $0 VERS" 1>&2 - echo " e.g. $0 1.0" 1>&2 +usage() +{ + echo "Usage: $0 prepare|publish VERS" 1>&2 + echo " e.g. $0 prepare 1.0" 1>&2 + echo " $0 publish 1.0" 1>&2 exit 2 +} + +if [ $# != 2 ]; then + usage fi -VERS=$1 +PUBLISH=false +case $1 in +publish) + PUBLISH=true + ;; +prepare) + ;; +*) + usage + ;; +esac +VERS=$2 PKG=fsverity-utils-$VERS -git checkout -f -git clean -fdx -./scripts/run-tests.sh -git clean -fdx - -major=$(echo "$VERS" | cut -d. -f1) -minor=$(echo "$VERS" | cut -d. -f2) -sed -E -i -e "/FSVERITY_UTILS_MAJOR_VERSION/s/[0-9]+/$major/" \ - -e "/FSVERITY_UTILS_MINOR_VERSION/s/[0-9]+/$minor/" \ - include/libfsverity.h -sed -E -i "/Version:/s/[0-9]+\.[0-9]+/$VERS/" \ - lib/libfsverity.pc.in -git commit -a --signoff --message="v$VERS" -git tag --sign "v$VERS" --message="$PKG" - -git archive "v$VERS" --prefix="$PKG/" > "$PKG.tar" -tar xf "$PKG.tar" -( cd "$PKG" && make check ) -rm -r "$PKG" - -gpg --detach-sign --armor "$PKG.tar" -DESTDIR=/pub/linux/kernel/people/ebiggers/fsverity-utils/v$VERS -kup mkdir "$DESTDIR" -kup put "$PKG.tar" "$PKG.tar.asc" "$DESTDIR/$PKG.tar.gz" -git push -git push --tags +prepare_release() +{ + git checkout -f + git clean -fdx + ./scripts/run-tests.sh + git clean -fdx + + major=$(echo "$VERS" | cut -d. -f1) + minor=$(echo "$VERS" | cut -d. -f2) + month=$(LC_ALL=C date +%B) + year=$(LC_ALL=C date +%Y) + + sed -E -i -e "/FSVERITY_UTILS_MAJOR_VERSION/s/[0-9]+/$major/" \ + -e "/FSVERITY_UTILS_MINOR_VERSION/s/[0-9]+/$minor/" \ + include/libfsverity.h + sed -E -i "/Version:/s/[0-9]+\.[0-9]+/$VERS/" \ + lib/libfsverity.pc.in + sed -E -i -e "/^% /s/fsverity-utils v[0-9]+(\.[0-9]+)+/fsverity-utils v$VERS/" \ + -e "/^% /s/[a-zA-Z]+ 2[0-9]{3}/$month $year/" \ + man/*.[1-9].md + git commit -a --signoff --message="v$VERS" + git tag --sign "v$VERS" --message="$PKG" + + git archive "v$VERS" --prefix="$PKG/" > "$PKG.tar" + tar xf "$PKG.tar" + ( cd "$PKG" && make check ) + rm -r "$PKG" +} + +publish_release() +{ + gpg --detach-sign --armor "$PKG.tar" + DESTDIR=/pub/linux/kernel/people/ebiggers/fsverity-utils/v$VERS + kup mkdir "$DESTDIR" + kup put "$PKG.tar" "$PKG.tar.asc" "$DESTDIR/$PKG.tar.gz" + git push + git push --tags +} + +if $PUBLISH; then + publish_release +else + prepare_release +fi |