summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorKarel Zak2012-01-19 10:51:48 +0100
committerKarel Zak2012-01-19 10:51:48 +0100
commit704d6ddbd0040acd67bc185b54398980a39fd2e5 (patch)
tree83f3503be3b9fee470817ac04064b4c422e19703 /tools
parentbuild-sys: add ko-release-gen script (diff)
downloadkernel-qcow2-util-linux-704d6ddbd0040acd67bc185b54398980a39fd2e5.tar.gz
kernel-qcow2-util-linux-704d6ddbd0040acd67bc185b54398980a39fd2e5.tar.xz
kernel-qcow2-util-linux-704d6ddbd0040acd67bc185b54398980a39fd2e5.zip
build-sys: add ko-release-push script
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'tools')
-rwxr-xr-xtools/ko-release-push62
1 files changed, 62 insertions, 0 deletions
diff --git a/tools/ko-release-push b/tools/ko-release-push
new file mode 100755
index 000000000..0c500ac8c
--- /dev/null
+++ b/tools/ko-release-push
@@ -0,0 +1,62 @@
+#!/bin/sh
+#
+# Copyright (C) 2012 Karel Zak <kzak@redhat.com>
+#
+# This script pushs files from <directory>/v<version> to kernel.org. The
+# default directory is kernel.org and <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=$(cat .version)
+VERSION_MAJOR=$(echo $VERSION | sed 's/-rc[0-9]//')
+BASEDIR=${1:-"kernel.org"}
+DISTDIR="${BASEDIR}/v${VERSION_MAJOR}"
+
+KO_DIR="/pub/linux/utils/util-linux/v${VERSION_MAJOR}"
+
+function die {
+ echo $1
+ exit 1
+}
+
+function push_file {
+ local sig="$1"
+
+ case "$sig" in
+ *.tar.sign)
+ fl=$(echo "$sig" | sed 's/\.tar\.sign/.tar.xz/')
+ ;;
+ *)
+ fl=$(echo "$sig" | sed 's/\.sign//')
+ ;;
+ esac
+
+ echo -n " PUSH $sig ..."
+ 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
+