#!/bin/bash function abort() { echo $1 [ -z $2 ] && exit -1 exit $2 # otherwise } function usage() { cat <] [-r ] [-s DIR] -h print this message -f force overwrite of existing game -g game id -r name of ruleset -s server installation directory -d override directory name USAGE } function ini_section() { $SOURCE/bin/inifile eressea.ini add $1 } function ini_add() { $SOURCE/bin/inifile eressea.ini add $1 $2 } game=0 force=0 src=server while getopts :d:g:r:s:hf o; do case "${o}" in h) usage ; exit 0 ;; s) src=${OPTARG} ;; d) dir=${OPTARG} ;; f) force=1 ;; g) game=${OPTARG} ;; r) rules=${OPTARG} ;; *) echo "not implemented ${o} ${OPTARG}" ;; esac done [ $game -gt 0 ] || abort "must use a positive integer for game id" [ -d $ERESSEA ] || abort "invalid or missing env variable ERESSEA ($ERESSEA)" [ -z $SOURCE ] && SOURCE=$ERESSEA/$src [ -d $SOURCE ] || abort "invalid source directory $SOURCE" [ -z $rules ] && rules=e$game [ -z $dir ] && dir=game-$game cd $ERESSEA if [ -d $dir ] ; then [ $force -eq 1 ] || abort "$dir directory exists. Use -f to force" fi mkdir -p $dir cd $dir || abort "could not chdir to game-$game" mkdir -p data reports touch eressea.ini ini_section eressea ini_add eressea:locales de,en ini_section lua ini_add lua:install $SOURCE ini_add lua:install $SOURCE ini_add lua:paths $SOURCE/scripts:$SOURCE/lunit ini_add lua:rules $rules ln -f $SOURCE/scripts/run-turn.lua