71 lines
1.5 KiB
Bash
Executable File
71 lines
1.5 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Copyright (C) 2012 Karel Zak <kzak@redhat.com>
|
|
#
|
|
# Usage: ko-release-push [<directory> [<version>]]
|
|
#
|
|
# This script pushs files from <directory>/v<version> to kernel.org. The
|
|
# default <directory> is "kernel.org" and the default <version> is the current
|
|
# package version.
|
|
#
|
|
# The <directory>/v<version> files should be generated by ko-release-gen script.
|
|
#
|
|
|
|
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=${2:-$(cat .version)}
|
|
VERSION_MAJOR=$(echo $VERSION | sed 's/-rc[0-9]//; s/\(.*\..*\)\..*/\1/')
|
|
BASEDIR=${1:-"kernel.org"}
|
|
DISTDIR="${BASEDIR}/v${VERSION_MAJOR}"
|
|
|
|
KO_DIR="/pub/linux/utils/util-linux/v${VERSION_MAJOR}"
|
|
|
|
die() {
|
|
echo $1
|
|
exit 1
|
|
}
|
|
|
|
function push_file {
|
|
local sig="$1"
|
|
|
|
case "$sig" in
|
|
*.tar.sign)
|
|
fl=${sig%%.sign}
|
|
if [ -f ${fl}.xz ]; then fl=${fl}.xz
|
|
elif [ -f ${fl}.gz ]; then fl=${fl}.gz
|
|
elif [ -f ${fl}.bz2 ]; then fl=${fl}.bz2
|
|
else die "cannot found original file for $sig"
|
|
fi
|
|
;;
|
|
*)
|
|
fl=$(echo "$sig" | sed 's/\.sign//')
|
|
;;
|
|
esac
|
|
|
|
echo -n " PUSH $fl ..."
|
|
kup put $fl $sig ${KO_DIR}/${fl##${DISTDIR}/}
|
|
echo " OK "
|
|
}
|
|
|
|
[ -d "$DISTDIR" ] || die "$DISTDIR: Not such directory"
|
|
|
|
FILES=$(find $DISTDIR -name "*.sign" | sort)
|
|
DIRS=$(for f in $FILES; do echo $(dirname ${KO_DIR}/${f##${DISTDIR}/}); done | sort -u)
|
|
|
|
for d in $DIRS; do
|
|
echo -n " MKDIR $d ..."
|
|
kup mkdir $d
|
|
echo " OK "
|
|
done
|
|
|
|
for f in $FILES; do
|
|
push_file $f
|
|
done
|
|
|