]> git.decadent.org.uk Git - dak.git/blobdiff - scripts/debian/byhand-win32-loader
Pass suite name to the autobyhand scripts
[dak.git] / scripts / debian / byhand-win32-loader
index e9d7085613a49a0f12509cdd5c3733ee01a54fad..ea4a1f909708cad2ce9ca1f99f5df71fc96bb6a2 100755 (executable)
@@ -1,37 +1,48 @@
-#!/bin/sh -ue
+#!/bin/bash
 
-if [ $# -lt 4 ]; then
-       echo "Usage: $0 filename version arch changes_file"
+set -u
+set -e
+
+if [ $# -lt 5 ]; then
+       echo "Usage: $0 filename version arch changes_file suite"
        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
+SUITE="$5"
 
-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"
-       ;;
-    unstable|sid)
-       : # nothing to do
-       ;;
+    unstable|sid|*-proposed-updates)
+           : # 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
@@ -39,9 +50,11 @@ 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