diff options
Diffstat (limited to 'evelauncher.sh')
-rw-r--r-- | evelauncher.sh | 86 |
1 files changed, 35 insertions, 51 deletions
diff --git a/evelauncher.sh b/evelauncher.sh index b5a4f5f386d3..7826429249a7 100644 --- a/evelauncher.sh +++ b/evelauncher.sh @@ -2,14 +2,7 @@ set -e -launcher_msg() { - if [ -x "$(which notify-send 2>/dev/null)" ] ;then - notify-send -i eve 'EVE Online Launcher' "$@" - fi - echo "$(basename $0): $@" -} - -check_install() { +check_env() { if [ -d "$CONFDIR" ] ;then if [ -r "$CONFDIR/EVE.conf" ] ;then SHAREDIR=$(grep SharedCacheFolder $CONFDIR/EVE.conf | cut -d= -f2) @@ -18,7 +11,7 @@ check_install() { SHAREDIR=${SHAREDIR:-$HOME/.eve/} [ ! -d "$SHAREDIR" ] && SHAREDIR="" if [ "x$SHAREDIR" != "x$EVEDIR/SharedCache/" ] ;then - launcher_msg "Please wait, preparing environment in $EVEDIR" + desktop_msg "Please wait, preparing environment in $EVEDIR" mkdir -p $CONFDIR echo "[General]" >$CONFDIR/EVE.conf echo "SharedCacheFolder=$EVEDIR/SharedCache/" >>$CONFDIR/EVE.conf @@ -41,49 +34,38 @@ check_steam() { } check_wine() { - EVECONF=$CONFDIR/EVE.conf - UCW=$(grep UseCustomWine $EVECONF | cut -d= -f2) - if [ "x$UCW" = "xtrue" ] ;then - CUSTOMWP=$(grep CustomWinePath $EVECONF | cut -d= -f2) - WINEPATH=${CUSTOMWP%/*} - SHAREDIR=$(grep SharedCacheFolder $EVECONF | cut -d= -f2) - WINEPREFIX=${SHAREDIR}wineenv - else - launcher_msg "ERROR: \"Use custom Wine\" not set!" - exit 1 - fi - if [ -x "$WINEPATH/wine" ] ;then - INSTWINE=$(cat $WINEPREFIX/.update-timestamp 2>/dev/null) || true - WINEINFP=$(readlink -f $CUSTOMWP) - WINECONF=$(find ${WINEINFP%/bin*}/share -name 'wine.inf' 2>/dev/null) || true - WINEDATE=$(ls -l --time-style=+%s "$WINECONF" 2>/dev/null | cut -d' ' -f6) - if [ "x$WINEDATE" != "x$INSTWINE" ] ;then - launcher_msg "Preparing wine in $WINEPREFIX" - env WINEARCH=win32 \ - WINEPREFIX=$WINEPREFIX \ - WINEDEBUG=-all \ - WINEDLLOVERRIDES="mscoree,mshtml,winemenubuilder.exe=d" \ - $WINEPATH/wine wineboot - env WINEPREFIX=$WINEPREFIX $WINEPATH/wine reg delete \ - 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices' \ - /v winemenubuilder /f >/dev/null || true + + check_custom_wine + + INSTWINE=$(cat $WINEPREFIX/.update-timestamp 2>/dev/null) || true + WINEINFP=$(readlink -f $CUSTOMWP) + WINECONF=$(find ${WINEINFP%/bin*}/share -name 'wine.inf' 2>/dev/null) || true + WINEDATE=$(ls -l --time-style=+%s "$WINECONF" 2>/dev/null | cut -d' ' -f6) + if [ "x$WINEDATE" != "x$INSTWINE" ] ;then + desktop_msg "Preparing wine in $WINEPREFIX" + env WINEPREFIX=$WINEPREFIX \ + WINEDEBUG=-all \ + WINEDLLOVERRIDES="mscoree,mshtml,winemenubuilder.exe=d" \ + $WINEPATH/wine wineboot + env WINEPREFIX=$WINEPREFIX $WINEPATH/wine reg delete \ + 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices' \ + /v winemenubuilder /f >/dev/null || true env WINEPREFIX=$WINEPREFIX $WINEPATH/wine reg add \ - 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' \ - /v winemenubuilder.exe /f >/dev/null - WINETRP=$(grep -v winxp $WINEPREFIX/winetricks.log 2>/dev/null | uniq) - if [ "x$WINETRP" != "x" ] ;then - rm $WINEPREFIX/winetricks.log - env WINEPREFIX=$WINEPREFIX WINE=$WINEPATH/wine \ - $(which winetricks) -q --force $WINETRP >/dev/null - fi - if [ "x$($WINEPATH/wine --version | grep -q 4. ;echo $?)" != "x0" ] ;then - env WINEPREFIX=$WINEPREFIX WINE=$WINEPATH/wine \ - $(which winetricks) -q winxp >/dev/null - fi + 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' \ + /v winemenubuilder.exe /f >/dev/null + WINETRP=$(grep -v win[x1..9] $WINEPREFIX/winetricks.log 2>/dev/null | uniq) + if [ "x$WINETRP" != "x" ] ;then + rm $WINEPREFIX/winetricks.log + env WINEPREFIX=$WINEPREFIX WINE=$WINEPATH/wine \ + $(which winetricks) -q --force $WINETRP >/dev/null fi - else - launcher_msg "ERROR: \"$CUSTOMWP\" in \"Custom Wine path\" not found!" - exit 1 + if [ "x$($WINEPATH/wine --version | grep -q 4. ;echo $?)" != "x0" ] ;then + WINVER=winxp + else + WINVER=win10 + fi + env WINEPREFIX=$WINEPREFIX WINE=$WINEPATH/wine \ + $(which winetricks) -q --force $WINVER >/dev/null fi } @@ -96,7 +78,9 @@ LAUNCHER="$EVEDIR/Launcher" SETUPDIR="/opt/evesetup" WINEPATH="/usr/bin" -check_install +source $SETUPDIR/lib/evelauncher.shlib + +check_env check_wine check_steam |