X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=scripts%2Fdebian%2Fbyhand-win32-loader;h=bba3499208b835a1769b8644c38b01533c00ffa5;hb=c873935ccbcadc268211a24be02791739b6a0d4f;hp=2a4abf1b125fc944031cd4f7b0b97ae148f356f4;hpb=bba1c2f72f628fd1a5d111caed5796f652563ca6;p=dak.git diff --git a/scripts/debian/byhand-win32-loader b/scripts/debian/byhand-win32-loader index 2a4abf1b..bba34992 100755 --- a/scripts/debian/byhand-win32-loader +++ b/scripts/debian/byhand-win32-loader @@ -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{.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,15 +27,34 @@ 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}/" +# 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 mkdir -p "$TARGET" 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}" + +# Chmod it correctly +chmod 0644 "${TARGET}${TARGET_FILENAME}" exit 0