#!/bin/sh # evelauncher fixed values CONFDIR="$HOME/.config/CCP" EVECONF="$CONFDIR/EVE.conf" # default value if not set SHAREDIR="$HOME/.eve" # evesetup shared functions check_elv() { ELBIN=$(getdate $LAUNCHER/evelauncher) ELBIN=$(expr $ELBIN / 60 \* 60) ELARC=$(getdate $SETUPDIR/lib/evelauncher-$ELVER.tar.?z) ELARC=$(expr $ELARC / 60 \* 60) if [ "$ELBIN" -lt "$ELARC" ] ;then if [ -d "$LAUNCHER" ] ;then rm -rf $LAUNCHER desktop_msg "Update EVE Launcher binaries" fi tar xf $SETUPDIR/lib/evelauncher-$ELVER.tar.?z -C $EVEDIR mv $EVEDIR/evelauncher $LAUNCHER fi } check_env() { if [ -d "$CONFDIR" ] ;then if [ -r "$EVECONF" ] ;then SHAREDIR=$(getval SharedCacheFolder) fi fi [ ! -d "$SHAREDIR" ] && SHAREDIR="" if [ "x$SHAREDIR" != "x$EVEDIR/SharedCache/" ] ;then desktop_msg "Please wait, preparing environment in $EVEDIR" mkdir -p $CONFDIR echo "[General]" >$EVECONF echo "SharedCacheFolder=$EVEDIR/SharedCache/" >>$EVECONF echo "UseCustomWine=true" >>$EVECONF echo "CustomWinePath=$WINEPATH/wine" >>$EVECONF mkdir -p $EVEDIR/SharedCache if [ -d "$SHAREDIR/ResFiles/" ] ;then mv $SHAREDIR/ResFiles/ $EVEDIR/SharedCache/ mv $SHAREDIR/*.txt $EVEDIR/SharedCache/ rm -rf $SHAREDIR fi fi } check_steam() { if [ ! -r "$LAUNCHER/steam_appid.txt" -a -x "$(which steam 2>/dev/null)" ] ;then echo "8500" >$LAUNCHER/steam_appid.txt fi } check_wine() { if [ ! -r "$EVECONF" ] ;then desktop_msg "ERROR: EVE Configuration not found!" exit 1 fi CUSTOMWP=$(getval CustomWinePath) SHAREDIR=$(getval SharedCacheFolder) UCW=$(getval UseCustomWine) WINEPREFIX=${SHAREDIR}wineenv if [ "x$UCW" = "xtrue" ] ;then WINEPATH=${CUSTOMWP%/*} [ -d "${SHAREDIR}wine" ] && rm -rf ${SHAREDIR}wine else CUSTOMWP=${SHAREDIR}wine WINEPATH=${SHAREDIR}wine/bin fi if [ ! -x "$WINEPATH/wine" ] ;then desktop_msg "ERROR: \"$CUSTOMWP\" not found!" exit 1 fi INSTWINE=$(cat $WINEPREFIX/.update-timestamp 2>/dev/null | tr -dc [:digit:]) || true WINEINFP=$(readlink -f $CUSTOMWP) WINECONF=$(find ${WINEINFP%bin*}share/wine* -name 'wine.inf') WINEDATE=$(getdate $WINECONF) if [ "x$WINEDATE" != "x$INSTWINE" ] ;then desktop_msg "Preparing wine in $WINEPREFIX" env WINEPREFIX=$WINEPREFIX \ WINEDEBUG=-all \ WINEDLLOVERRIDES="mscoree,mshtml=d" \ $WINEPATH/wineboot env WINEPREFIX=$WINEPREFIX \ $WINEPATH/wine reg add \ 'HKCU\Software\Wine\FileOpenAssociations' \ /v Enable /d N /f >/dev/null WINETRP=$(cat $WINEPREFIX/winetricks.log 2>/dev/null | uniq) if [ "x$WINETRP" != "x" ] ;then desktop_msg "Apply winetricks settings. This will take some time." rm $WINEPREFIX/winetricks.log >/dev/null env WINEPREFIX=$WINEPREFIX \ WINE=$WINEPATH/wine \ $(which winetricks) -q --force $WINETRP >/dev/null fi fi if [ "x$(grep -csw winemenubuilder $WINEPREFIX/system.reg)" != "x0" ] ;then if [ -x "$WINEPATH/wine64" ] ;then WINE=$WINEPATH/wine64 else WINE=$WINEPATH/wine fi env WINEPREFIX=$WINEPREFIX \ $WINE reg delete \ 'HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices' \ /v winemenubuilder /f >/dev/null fi } desktop_msg() { if [ -x "$(which notify-send 2>/dev/null)" ] ;then notify-send -i eve $(basename $0) "$@" fi printf "$(basename $0): $@\n" } getdate() { printf $(ls -l --time-style=+%s $1 2>/dev/null | cut -d' ' -f6) \ 2>/dev/null || printf 60 } getval() { printf $(grep "$1" $EVECONF | cut -d= -f2) }