blob: ef16fce978026e114ffa9037fee1e50dbb37f8d7 [file] [log] [blame]
#!/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