From 4cfcbd3f435f114b8d29f1bf6d50a0378dd7c028 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20=27Necoro=27=20Neumann?= Date: Tue, 15 Jun 2010 02:58:13 +0200 Subject: added some games; added templates; added debug; moved functions to functions.sh --- default | 39 ---------------------------------- functions.sh | 43 ++++++++++++++++++++++++++++++++++++++ games/bg2 | 2 ++ games/fallout | 2 ++ games/osmos | 5 +++++ games/steam | 8 ++----- games/torchlight | 2 ++ play.sh | 62 ++++++++++++++----------------------------------------- templates/default | 39 ++++++++++++++++++++++++++++++++++ templates/steam | 9 ++++++++ 10 files changed, 120 insertions(+), 91 deletions(-) delete mode 100644 default create mode 100644 functions.sh create mode 100644 games/osmos create mode 100644 templates/default create mode 100644 templates/steam diff --git a/default b/default deleted file mode 100644 index 29f24c0..0000000 --- a/default +++ /dev/null @@ -1,39 +0,0 @@ -# exporting variables -EENV[WINEPREFIX]='eval echo $PREFIX' -ENV[WINEDEBUG]="-all" -ENV[DISPLAY]=":1" - -PREFIX="~/.wine" - -default_execute () { - exc -f startx $BIN -x $GAME -- :1 -ac -br -quiet ${=EXARGS} -} - -default_prepare () { - nvidia-settings -l - - # set display size - [[ -n $SIZE ]] && xrandr -s $SIZE -} - -default_setenv () { - for e v in ${(kv)ENV}; do - exp $e $v - done - - for e v in ${(kv)EENV}; do - exp $e `eval $v` - done -} - -default_run () { - # start game - exc wine start $GPATH "$ARGS" - - # wait for wine to shutdown - exc wineserver -w -} - -EXPORT default execute prepare setenv run - -# vim:ft=zsh diff --git a/functions.sh b/functions.sh new file mode 100644 index 0000000..e943dca --- /dev/null +++ b/functions.sh @@ -0,0 +1,43 @@ +out () { + echo ">>> $@" +} + +log () { + [[ $PLAY_DEBUG > 0 ]] && echo "*** $@" +} + +exp () { + log "Setting envvar '$1' to '$2'" + export $1=$2 +} + +exc () { + cmd="eval" + + if [[ $1 == "-e" ]]; then + cmd="exec" + shift + fi + + if [[ $PLAY_DEBUG > 0 ]]; then + log "Executing (using '$cmd'):" + log "> $@" + + sleep 3 + fi + + $cmd "$@" +} + +EXPORT () { + local name=$1 + shift + + for f in $@; do + eval "$f () { ${name}_${f}; }" + done +} + +inherit () { + source $PLAY_TEMPLATES/$1 +} diff --git a/games/bg2 b/games/bg2 index bb581ba..cd052b2 100644 --- a/games/bg2 +++ b/games/bg2 @@ -1,2 +1,4 @@ SIZE="1024x768" GPATH="c:/spiele/bg2/baldur.exe" + +# vim:ft=sh diff --git a/games/fallout b/games/fallout index 3aac10a..faafacb 100644 --- a/games/fallout +++ b/games/fallout @@ -1,3 +1,5 @@ PREFIX="~/.fallout" SIZE="640x480" GPATH="c:/spiele/fallout/falloutw.exe" + +# vim:ft=sh diff --git a/games/osmos b/games/osmos new file mode 100644 index 0000000..586acbc --- /dev/null +++ b/games/osmos @@ -0,0 +1,5 @@ +inherit steam + +steamapp 29200 + +# vim:ft=sh diff --git a/games/steam b/games/steam index 1014061..0b71daf 100644 --- a/games/steam +++ b/games/steam @@ -1,7 +1,3 @@ -PREFIX="~/.steam" -SIZE="1280x1024" -GPATH="c:/programme/steam/steam.exe" +inherit steam -steamapp () { - [[ $# > 0 ]] && export ARGS="-applaunch ${=@}" -} +# vim:ft=sh diff --git a/games/torchlight b/games/torchlight index cf050f1..acfc3bc 100644 --- a/games/torchlight +++ b/games/torchlight @@ -1,3 +1,5 @@ inherit steam steamapp 41600 + +# vim:ft=sh diff --git a/play.sh b/play.sh index 92934e5..5667e81 100755 --- a/play.sh +++ b/play.sh @@ -1,73 +1,43 @@ #!/bin/zsh -f -log () { - echo "*** $@" -} +PLAY_DEBUG=${PLAY_DEBUG:-0} -exp () { - log "Setting envvar '$1' to '$2'" - export $1=$2 -} +[[ $PLAY_DEBUG == 2 ]] && setopt xtrace -exc () { - if [[ $1 == "-f" ]]; then - fork=1 - msg=" (forking)" - shift - fi - - log "Executing${msg}:" - echo $@ - - sleep 3 - - if [[ -n $fork ]]; then - exec "$@" &! - else - eval "$@" - fi -} - -EXPORT () { - local name=$1 - shift - - for f in $@; do - eval "$f () { ${name}_${f}; }" - done -} - -inherit () { - source games/$1 -} +PLAY_DIR="${PLAY_DIR:-${0:h}}" +PLAY_GAMES="${PLAY_GAMES:-$PLAY_DIR/games}" +PLAY_TEMPLATES="${PLAY_TEMPLATES:-$PLAY_DIR/templates}" typeset -A ENV EENV BIN=$0 -source default +source $PLAY_DIR/functions.sh + +inherit default if [[ $1 == "-x" ]]; then - source games/$2 + source $PLAY_GAMES/$2 setenv prepare run else GAME=$1 + DGAME="$PLAY_GAMES/$GAME" list () { - echo "Games are:" - for k in games/*(.:t); do + out "Games are:" + for k in $PLAY_GAMES/*(.:t); do echo "\t> $k" done } - if [[ -z $GAME || ! -e games/$GAME ]]; then - [[ ! -e games/$GAME ]] && log "Game '$GAME' not found" + if [[ -z $GAME || ! -e $DGAME ]]; then + [[ ! -e $DGAME ]] && out "Game '$GAME' not found" list exit 1 else - log "Launching '$GAME'" - source games/$GAME + out "Launching '$GAME'" + source $DGAME execute fi fi diff --git a/templates/default b/templates/default new file mode 100644 index 0000000..4fd9c50 --- /dev/null +++ b/templates/default @@ -0,0 +1,39 @@ +# exporting variables +EENV[WINEPREFIX]='eval echo $PREFIX' +ENV[WINEDEBUG]="-all" +ENV[DISPLAY]=":1" + +PREFIX="~/.wine" + +default_execute () { + exc -e startx $BIN -x $GAME -- :1 -ac -br -quiet ${=EXARGS} +} + +default_prepare () { + nvidia-settings -l + + # set display size + [[ -n $SIZE ]] && xrandr -s $SIZE +} + +default_setenv () { + for e v in ${(kv)ENV}; do + exp $e $v + done + + for e v in ${(kv)EENV}; do + exp $e `eval $v` + done +} + +default_run () { + # start game + exc wine start $GPATH "$ARGS" + + # wait for wine to shutdown + exc wineserver -w +} + +EXPORT default execute prepare setenv run + +# vim:ft=sh diff --git a/templates/steam b/templates/steam new file mode 100644 index 0000000..321f646 --- /dev/null +++ b/templates/steam @@ -0,0 +1,9 @@ +PREFIX="~/.steam" +SIZE="1280x1024" +GPATH="c:/programme/steam/steam.exe" + +steamapp () { + [[ $# > 0 ]] && export ARGS="-applaunch ${=@}" +} + +# vim:ft=sh -- cgit v1.2.3