From a3f225678fd96e004486ea9b5fb38a5b663537af Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Thu, 19 Jan 2012 10:33:42 +0100 Subject: build-sys: add ko-release-gen script The script creates directory kernel.org/v/, copy .xz tarball, changelog, release notes and docs to the directory and sign all files by gpg. Signed-off-by: Karel Zak --- tools/ko-release-gen | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100755 tools/ko-release-gen (limited to 'tools') diff --git a/tools/ko-release-gen b/tools/ko-release-gen new file mode 100755 index 000000000..46d140f95 --- /dev/null +++ b/tools/ko-release-gen @@ -0,0 +1,76 @@ +#!/bin/sh +# +# Copyright (C) 2012 Karel Zak +# +# Usage: ko-release-gen [] +# +# This script prepares a new release for publishing on kernel.org. The +# hierarchy of release files is created in the (default directory +# is "kernel.org"). Use case: +# +# make distcheck +# make changelog +# tools/ko-release-gen +# tools/ko-release-push +# + +cd "$(git rev-parse --show-toplevel)" || { + echo "error: failed to chdir to git root" + exit 1 +} + +[ -f ".version" ] || \ + echo "error: cannot found version file (call make distcheck)" + +VERSION=$(cat .version) +VERSION_MAJOR=$(echo $VERSION | sed 's/-rc[0-9]//') +DISTDIR=${1:-"kernel.org"}/v${VERSION_MAJOR} + +GPG_CMD="gpg --use-agent --armor --detach-sign --quiet --batch" + +function die { + echo $1 + exit 1 +} + +function add_file { + local src="$1" + local name=$(basename $1) + local subdir=$DISTDIR/${2:-""} + + mkdir -p $subdir + cp $src $subdir || die "$src: copy failed" + + [ -f $subdir/$name ] || die "$name not found" + echo -n " $subdir/$name ..." + + case "$name" in + *.tar.xz) + local sig=$(echo "$name" | sed 's/\.tar\.xz/.tar.sign/') + xz -d -c $subdir/$name | $GPG_CMD --output $subdir/$sig + ;; + *) + local sig="${name}.sign" + cat $subdir/$name | $GPG_CMD --output $subdir/$sig + ;; + esac + echo " OK " +} + +function add_html_dir { + local src="$1" # source dir + local tgt="$2" # target dir + + for fl in $(ls $src/*.{html,css,png}); do + add_file $fl $tgt + done +} + +rm -rf $DISTDIR + +add_file util-linux-${VERSION}.tar.xz +add_file v${VERSION}-ChangeLog +add_file Documentation/releases/v${VERSION_MAJOR}-ReleaseNotes +add_html_dir libmount/docs/html libmount-docs +add_html_dir libblkid/docs/html libblkid-docs + -- cgit v1.2.3-55-g7522