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