summaryrefslogblamecommitdiffstats
path: root/tools/ko-release-push
blob: 0c500ac8c0e5adb53e7fcd16fdac2855a6666921 (plain) (tree)





























































                                                                                       
#!/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