1*b13c0e40SEric Biggers#!/bin/bash 2*b13c0e40SEric Biggers# SPDX-License-Identifier: MIT 3*b13c0e40SEric Biggers# Copyright 2020 Google LLC 4*b13c0e40SEric Biggers# 5*b13c0e40SEric Biggers# Use of this source code is governed by an MIT-style 6*b13c0e40SEric Biggers# license that can be found in the LICENSE file or at 7*b13c0e40SEric Biggers# https://opensource.org/licenses/MIT. 8*b13c0e40SEric Biggers 9*b13c0e40SEric Biggersset -e -u -o pipefail 10*b13c0e40SEric Biggerscd "$(dirname "$0")/.." 11*b13c0e40SEric Biggers 12*b13c0e40SEric Biggersusage() 13*b13c0e40SEric Biggers{ 14*b13c0e40SEric Biggers echo "Usage: $0 prepare|publish VERS" 1>&2 15*b13c0e40SEric Biggers echo " e.g. $0 prepare 1.0" 1>&2 16*b13c0e40SEric Biggers echo " $0 publish 1.0" 1>&2 17*b13c0e40SEric Biggers exit 2 18*b13c0e40SEric Biggers} 19*b13c0e40SEric Biggers 20*b13c0e40SEric Biggersif [ $# != 2 ]; then 21*b13c0e40SEric Biggers usage 22*b13c0e40SEric Biggersfi 23*b13c0e40SEric Biggers 24*b13c0e40SEric BiggersPUBLISH=false 25*b13c0e40SEric Biggerscase $1 in 26*b13c0e40SEric Biggerspublish) 27*b13c0e40SEric Biggers PUBLISH=true 28*b13c0e40SEric Biggers ;; 29*b13c0e40SEric Biggersprepare) 30*b13c0e40SEric Biggers ;; 31*b13c0e40SEric Biggers*) 32*b13c0e40SEric Biggers usage 33*b13c0e40SEric Biggers ;; 34*b13c0e40SEric Biggersesac 35*b13c0e40SEric BiggersVERS=$2 36*b13c0e40SEric BiggersPKG=fsverity-utils-$VERS 37*b13c0e40SEric Biggers 38*b13c0e40SEric Biggersprepare_release() 39*b13c0e40SEric Biggers{ 40*b13c0e40SEric Biggers git checkout -f 41*b13c0e40SEric Biggers git clean -fdx 42*b13c0e40SEric Biggers ./scripts/run-tests.sh 43*b13c0e40SEric Biggers git clean -fdx 44*b13c0e40SEric Biggers 45*b13c0e40SEric Biggers major=$(echo "$VERS" | cut -d. -f1) 46*b13c0e40SEric Biggers minor=$(echo "$VERS" | cut -d. -f2) 47*b13c0e40SEric Biggers month=$(LC_ALL=C date +%B) 48*b13c0e40SEric Biggers year=$(LC_ALL=C date +%Y) 49*b13c0e40SEric Biggers 50*b13c0e40SEric Biggers sed -E -i -e "/FSVERITY_UTILS_MAJOR_VERSION/s/[0-9]+/$major/" \ 51*b13c0e40SEric Biggers -e "/FSVERITY_UTILS_MINOR_VERSION/s/[0-9]+/$minor/" \ 52*b13c0e40SEric Biggers include/libfsverity.h 53*b13c0e40SEric Biggers sed -E -i "/Version:/s/[0-9]+\.[0-9]+/$VERS/" \ 54*b13c0e40SEric Biggers lib/libfsverity.pc.in 55*b13c0e40SEric Biggers sed -E -i -e "/^\.TH /s/fsverity-utils v[0-9]+(\.[0-9]+)+/fsverity-utils v$VERS/" \ 56*b13c0e40SEric Biggers -e "/^\.TH /s/[a-zA-Z]+ 2[0-9]{3}/$month $year/" \ 57*b13c0e40SEric Biggers man/*.[1-9] 58*b13c0e40SEric Biggers git commit -a --signoff --message="v$VERS" 59*b13c0e40SEric Biggers git tag --sign "v$VERS" --message="$PKG" 60*b13c0e40SEric Biggers 61*b13c0e40SEric Biggers git archive "v$VERS" --prefix="$PKG/" > "$PKG.tar" 62*b13c0e40SEric Biggers tar xf "$PKG.tar" 63*b13c0e40SEric Biggers ( cd "$PKG" && make check ) 64*b13c0e40SEric Biggers rm -r "$PKG" 65*b13c0e40SEric Biggers} 66*b13c0e40SEric Biggers 67*b13c0e40SEric Biggerspublish_release() 68*b13c0e40SEric Biggers{ 69*b13c0e40SEric Biggers gpg --detach-sign --armor "$PKG.tar" 70*b13c0e40SEric Biggers DESTDIR=/pub/linux/kernel/people/ebiggers/fsverity-utils/v$VERS 71*b13c0e40SEric Biggers kup mkdir "$DESTDIR" 72*b13c0e40SEric Biggers kup put "$PKG.tar" "$PKG.tar.asc" "$DESTDIR/$PKG.tar.gz" 73*b13c0e40SEric Biggers git push 74*b13c0e40SEric Biggers git push --tags 75*b13c0e40SEric Biggers} 76*b13c0e40SEric Biggers 77*b13c0e40SEric Biggersif $PUBLISH; then 78*b13c0e40SEric Biggers publish_release 79*b13c0e40SEric Biggerselse 80*b13c0e40SEric Biggers prepare_release 81*b13c0e40SEric Biggersfi 82