#!/bin/bash # SPDX-License-Identifier: MIT # Copyright 2020 Google LLC # # Use of this source code is governed by an MIT-style # license that can be found in the LICENSE file or at # https://opensource.org/licenses/MIT. set -e -u -o pipefail cd "$(dirname "$0")/.." 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 PUBLISH=false case $1 in publish) PUBLISH=true ;; prepare) ;; *) usage ;; esac VERS=$2 PKG=fsverity-utils-$VERS 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