#!/bin/sh # requires "lschanges" set -e ARCHIVE_DIR=/home/groups/pkg-gnome/archive LSCHANGES=$ARCHIVE_DIR/bin/lschanges DPUT_HOST=ftp-master umask 002 log() { echo "$*" >&2 } log_i() { log "I:" "$@" } log_e() { log "E:" "$@" } fatal() { log_e "$@" exit 1 } if [ $# -ne 1 ]; then fatal "Usage: $0 " fi cleanup() { log_i "Cleaning up $*..." rm -rf "$*" } TMP_DIR=$(mktemp -d -t pkg-gnome.upload-to-master.XXXXXX) trap "cleanup \"$TMP_DIR\"" 0 1 2 3 9 11 13 15 CHANGES="$1" if [ ! -e "$CHANGES" ]; then fatal "$CHANGES doesn't exist" fi distribution="$(sed -n 's/^Distribution: //p' "$CHANGES")" if [ -z "$distribution" ]; then fatal "No Distribution field in $CHANGES" fi cp -v "$CHANGES" "$TMP_DIR" for f in $("$LSCHANGES" "$CHANGES"); do path=$(find "$ARCHIVE_DIR/$distribution" -name $f) if [ -z "$path" ]; then fatal "Couldn't not find $f in $ARCHIVE_DIR/$distribution" fi cp -v "$path" "$TMP_DIR" done dput -u $DPUT_HOST "$TMP_DIR/$(basename "$CHANGES")"