]> git.decadent.org.uk Git - dak.git/blobdiff - scripts/debian/byhand-win32-loader
Fix proposed-updates handling in byhand-di and byhand-win32-loader
[dak.git] / scripts / debian / byhand-win32-loader
index fff19742edd2696ab059bc2fb6143052fd82e7da..bba3499208b835a1769b8644c38b01533c00ffa5 100755 (executable)
@@ -1,30 +1,25 @@
-#!/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
            ;;
     *)
@@ -32,6 +27,16 @@ case $SUITE in
            ;;
 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}/"
 
@@ -45,7 +50,9 @@ if [ ! -d "$TARGET" ]; then
 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}"