diff --git a/s/setup b/s/setup new file mode 100755 index 000000000..55b26b048 --- /dev/null +++ b/s/setup @@ -0,0 +1,58 @@ +#!/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 +} + +game=0 +force=0 +src=server +while getopts :d:g:r:s:hf o; do + case "${o}" in + h) usage ;; + s) src=${OPTARG} ;; + d) dir=${OPTARG} ;; + f) force=1 ;; + g) game=${OPTARG} ;; + r) rules=${OPTARG} ;; + *) echo "not implemented ${o} ${OPTARG}" ;; + esac +done + +[ -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 +cat > eressea.ini <