]> git.decadent.org.uk Git - dak.git/blobdiff - scripts/debian/byhand-win32-loader
Use /bin/bash as interpreter.
[dak.git] / scripts / debian / byhand-win32-loader
index e9d7085613a49a0f12509cdd5c3733ee01a54fad..2006a195578cfa9bf796d3f65e0d64bb8e04ab07 100755 (executable)
@@ -1,37 +1,43 @@
-#!/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_FILE="$1" # win32-loader_${VERSION}_${ARCH}{.exe,txt}
 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
 
 # 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 +45,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_FILE" "${TARGET}${TARGET_FILENAME}"
 
-trap - EXIT
-cleanup
+# Chmod it correctly
+chmod 0644 "${TARGET}${TARGET_FILENAME}"
 
 exit 0