-#!/bin/sh
+#!/bin/bash
set -u
set -e
-if [ $# -lt 4 ]; then
- echo "Usage: $0 filename version arch changes_file"
+if [ $# -lt 5 ]; then
+ echo "Usage: $0 filename version arch changes_file suite"
exit 1
fi
export SCRIPTVARS=/srv/ftp-master.debian.org/dak/config/debian/vars
. $SCRIPTVARS
-WIN32_LOADER_FILE="$1" # win32-loader_${VERSION}_${ARCH}{.exe,txt}
+WIN32_LOADER_PATH="$1" # win32-loader_${VERSION}_${ARCH}{.exe,txt}
+WIN32_LOADER_FILE="${WIN32_LOADER_PATH##*/}"
VERSION="$2"
ARCH="$3"
CHANGES="$4" # Changes file for the upload
+SUITE="$5"
-# Get the target suite from the Changes file
-# NOTE: it may be better to pass this to the script as a parameter!
-SUITE="$(grep "^Distribution:" "$CHANGES" | awk '{print $2}')"
case $SUITE in
- "")
- echo "Error: unable to determine suite from Changes file"
- exit 1
- ;;
- unstable|sid)
+ unstable|sid|*proposed-updates)
: # nothing to do
;;
*)
;;
esac
+case "${WIN32_LOADER_FILE}" in
+ win32-loader_*.exe|win32-loader_*.txt)
+ : # okay
+ ;;
+ *)
+ echo "Error: invalid filename for byhand-win32-loader"
+ exit 1
+ ;;
+esac
+
# This must end with /
TARGET="${ftpdir}/tools/win32-loader/${SUITE}/"
fi
# Put said file into the tools directory
-cp "$WIN32_LOADER_FILE" "${TARGET}${TARGET_FILENAME}"
+# Use --remove-destination to avoid problems with the fact that the target may
+# be a hardlink and in that case we'd update multiple suites together
+cp --remove-destination "$WIN32_LOADER_PATH" "${TARGET}${TARGET_FILENAME}"
# Chmod it correctly
chmod 0644 "${TARGET}${TARGET_FILENAME}"