From b8d3c010d8641a55de8753642c866ab104185ebf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20=27Necoro=27=20Neumann?= Date: Tue, 15 Jun 2010 13:26:40 +0200 Subject: Added implicit default template --- play.sh | 41 ++++++++++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 11 deletions(-) (limited to 'play.sh') diff --git a/play.sh b/play.sh index 799047e..d4cdf08 100755 --- a/play.sh +++ b/play.sh @@ -22,6 +22,11 @@ log () { [[ $PLAY_DEBUG > 0 ]] && echo "*** $@" } +die () { + out "*** ERROR: $@" + exit 1 +} + exp () { log "Setting envvar '$1' to '$2'" export $1=$2 @@ -51,32 +56,46 @@ EXPORT () { } inherit () { + zparseopts -D e=nonfatal + + if [[ ! -e $PLAY_TEMPLATES/$1 ]]; then + if [[ -n $nonfatal ]]; then + log "Template '$1' not found" + return + else + die "Template '$1' not found" + fi + fi + source $PLAY_TEMPLATES/$1 } + +load () { + inherit -e default + + source "$PLAY_GAMES/$1" +} # }}} # default template {{{ # exporting variables EENV[WINEPREFIX]='eval echo $PREFIX' -ENV[WINEDEBUG]="-all" ENV[DISPLAY]=":1" PREFIX="~/.wine" # functions -default_execute () { +play_execute () { exc -e startx $BIN -x $GAME -- :1 -ac -br -quiet ${=EXARGS} } -default_prepare () { - exc nvidia-settings -l - +play_prepare () { # set display size [[ -n $SIZE ]] && exc xrandr -s $SIZE } -default_setenv () { +play_setenv () { for e v in ${(kv)ENV}; do exp $e $v done @@ -86,7 +105,7 @@ default_setenv () { done } -default_run () { +play_run () { # start game exc wine start $GPATH "$ARGS" @@ -94,14 +113,14 @@ default_run () { exc wineserver -w } -default_cleanup () { +play_cleanup () { } -EXPORT default execute prepare setenv run cleanup +EXPORT play execute prepare setenv run cleanup # }}} if [[ $1 == "-x" ]]; then - source $PLAY_GAMES/$2 + load $2 setenv prepare run @@ -123,7 +142,7 @@ else exit 1 else out "Launching '$GAME'" - source $DGAME + load $GAME execute fi fi -- cgit v1.2.3