-#!/bin/sh -ue
+#!/bin/bash
+
+set -u
+set -e
if [ $# -lt 4 ]; then
echo "Usage: $0 filename version arch changes_file"
exit 1
fi
-WIN32_LOADER_FILE="$1" # *-win32-loader{.exe,txt}
+export SCRIPTVARS=/srv/ftp-master.debian.org/dak/config/debian/vars
+. $SCRIPTVARS
+
+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
-error() {
- echo "$*"
- exit 1
-}
-
# 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
"")
- error "Error: unable to determine suite from Changes file"
- ;;
+ echo "Error: unable to determine suite from Changes file"
+ exit 1
+ ;;
unstable|sid)
- : # nothing to do
- ;;
+ : # nothing to do
+ ;;
*)
- SUITE="${SUITE}-proposed-updates"
- ;;
+ SUITE="${SUITE}-proposed-updates"
+ ;;
+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="/srv/ftp-master.debian.org/ftp/tools/"
+TARGET="${ftpdir}/tools/win32-loader/${SUITE}/"
+
+# Prepare the target filename by removing the version and arch parts;
+# transforms any/path/win32-loader_${VERSION}_${ARCH}.${extension} to win32-loader.${extension}
+TARGET_FILENAME="${WIN32_LOADER_FILE%%_*}.${WIN32_LOADER_FILE##*.}"
# Check validity of the target directory
if [ ! -d "$TARGET" ]; then
fi
# Put said file into the tools directory
-cp "$WIN32_LOADER_FILE" "$TARGET"
+# 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}"
-trap - EXIT
-cleanup
+# Chmod it correctly
+chmod 0644 "${TARGET}${TARGET_FILENAME}"
exit 0