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