util-linux/tools/ko-release-gen

77 lines
1.6 KiB
Plaintext
Raw Normal View History

#!/bin/sh
#
# Copyright (C) 2012 Karel Zak <kzak@redhat.com>
#
# Usage: ko-release-gen [<directory>]
#
# This script prepares a new release for publishing on kernel.org. The
# hierarchy of release files is created in the <directory> (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