build-sys: add ko-release-gen script
The script creates directory kernel.org/v<version>/, copy .xz tarball, changelog, release notes and docs to the directory and sign all files by gpg. Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
parent
748c010f07
commit
a3f225678f
|
@ -0,0 +1,76 @@
|
|||
#!/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
|
||||
|
Loading…
Reference in New Issue