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