[pkg-wine-party] Bug#764212: [wine-development] Error in bash script, fi needed at line 28

Konstantin Demin rockdrilla at gmail.com
Thu Oct 9 08:46:46 UTC 2014


Please review attached patch.

-- 
SY,
Konstantin Demin
-------------- next part --------------
description: debian/scripts/wine: support relative WINEPREFIX, remove '-e' from hashbang, formatting
author: Konstantin Demin <rockdrilla at gmail.com>

diff --git a/debian/scripts/wine b/debian/scripts/wine
index 0850dff..6950525 100755
--- a/debian/scripts/wine
+++ b/debian/scripts/wine
@@ -1,44 +1,63 @@
-#!/bin/sh -e
-
-name=$(basename $0)
-bindir=/usr/lib/$name
-
-wine32=$bindir/wine
-wine64=$bindir/wine64
-
-if test -x $wine32 -a "$WINEARCH" != "win64"; then
-    wine=$wine32
-elif test -x $wine64; then
-    wine=$wine64
-    if [ "$(dpkg --print-architecture)" = "amd64" -a "$(dpkg --print-foreign-architectures)" != "i386" ]; then
-        echo "it looks like multiarch needs to be enabled.  as root, please"
-        echo "execute \"dpkg --add-architecture i386 && apt-get update &&"
-        echo "apt-get install $(echo $name | sed s/wine/wine32/)\""
-    fi
+#!/bin/sh
+name=$(basename "$0")
+bindir=/usr/lib/${name}
+
+wine32=${bindir}/wine
+wine64=${bindir}/wine64
+
+if [ -x "${wine32}" -a "${WINEARCH}" != "win64" ]; then
+	wine=${wine32}
+elif [ -x "${wine64}" ]; then
+	wine=${wine64}
+	dpkg_native=$(dpkg --print-architecture)
+	dpkg_foreign=$(dpkg --print-foreign-architectures)
+
+	if [ "${dpkg_native}" = "amd64" -a "${dpkg_foreign}" != "i386" ]; then
+		cat 1>&2 <<-EOF
+			it looks like multiarch needs to be enabled.
+			as root, please execute:
+			»   dpkg --add-architecture i386
+			»   apt-get update
+			»   apt-get install $(echo "${name}" | sed -e 's/wine/wine32/')
+		EOF
+	fi
 else
-    echo "error: unable to find wine executable.  this shouldn't happen."
-    exit 1
+	cat 1>&2 <<-EOF
+		error: unable to find wine executable. this shouldn't happen.
+	EOF
+	exit 1
 fi
 
-if test -z $WINEPREFIX; then
-    if "$wine" = "$wine64"; then
-        wineprefix=$HOME/.wine64
-    else
-        wineprefix=$HOME/.wine
-else
-    wineprefix=$WINEPREFIX
+if [ -z "${WINELOADER}" ];
+then wineloader=${wine}
+else wineloader=${WINELOADER}
 fi
 
-if test -z $WINELOADER; then
-    wineloader=$wine
-else
-    wineloader=$WINELOADER
+if [ -z "${WINEDEBUG}" ];
+then winedebug=-all
+else winedebug=${WINEDEBUG}
 fi
 
-if test -z $WINEDEBUG; then
-    winedebug=-all
+if [ -z "${WINEPREFIX}" ]; then
+	if [ "${wine}" = "${wine64}" ];
+	then wineprefix=${HOME}/.wine64
+	else wineprefix=${HOME}/.wine
+	fi
 else
-    winedebug=$WINEDEBUG
+	wineprefix=${WINEPREFIX}
+fi
+
+wineprefix_normal=$(readlink -f "${wineprefix}")
+if [ -z "${wineprefix_normal}" ]; then
+	cat 1>&2 <<-EOF
+		wine prefix not found and/or cannot be created.
+		check path again:
+		»   ${wineprefix}
+	EOF
+	exit 1
 fi
 
-WINEPREFIX=$wineprefix WINELOADER=$wineloader WINEDEBUG=$winedebug $wine "$@"
+export WINEPREFIX=${wineprefix_normal}
+export WINELOADER=${wineloader}
+export WINEDEBUG=${winedebug}
+exec "${wine}" "$@"


More information about the pkg-wine-party mailing list