#!/bin/sh # # Copyright (C) 2012 Karel Zak # # Usage: ko-release-push [ []] # # This script pushs files from /v to kernel.org. The # default is "kernel.org" and the default is the current # package version. # # The /v 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