diff --git a/Run.sh b/Run.sh index ede67c9..a63fbd1 100755 --- a/Run.sh +++ b/Run.sh @@ -5,6 +5,32 @@ OUTPUT_DIR="$2" CFG_FILE="$3" DEFAULT_CFG_FILE=UnrealTournament.ini +function add_iniKey() { + crudini --set $OUTPUT_DIR/System/$CFG_FILE $1 __$2 $3 + # Warning: ugly hack with sed to allow multiple key instances + to remove space around '=' + sed -i "s/[[:space:]]*__$2[[:space:]]*=[[:space:]]*/$2=/g" $OUTPUT_DIR/System/$CFG_FILE +} + +# !!Warning!! section is not considered +function del_iniKey() { + sed -i "/[[:space:]]*$2[[:space:]]*=[[:space:]]*$3/d" $OUTPUT_DIR/System/$CFG_FILE +} + +function add_ServerPackage() { + add_iniKey 'Engine.GameEngine' ServerPackages $1 +} + +function del_ServerPackage() { + del_iniKey 'Engine.GameEngine' ServerPackages $1 +} + +function add_ServerActors() { + add_iniKey 'Engine.GameEngine' ServerActors $1 +} + +function del_ServerActors() { + del_iniKey 'Engine.GameEngine' ServerActors $1 +} function install() { rsync -a $SCRIPT_DIR/Help/ $OUTPUT_DIR/Help/ @@ -18,15 +44,11 @@ function enable() { SSBUFile=$(find $OUTPUT_DIR/System -type f -iname "SmartSB*.u" ! -name "SmartSBStats.u" -exec basename {} \;) SSBBaseName="${SSBUFile%.*}" - # Warning: ugly hack with sed to allow multiple key instances - crudini --set $OUTPUT_DIR/System/$CFG_FILE 'Engine.GameEngine' _ServerPackages $SSBBaseName - sed -i 's/_ServerPackages/ServerPackages/g' $OUTPUT_DIR/System/$CFG_FILE + add_ServerPackage $SSBBaseName + add_ServerPackage SmartSBStats + add_ServerActors $SSBBaseName.SmartSBServerActor - crudini --set $OUTPUT_DIR/System/$CFG_FILE 'Engine.GameEngine' _ServerPackages SmartSBStats - sed -i 's/_ServerPackages/ServerPackages/g' $OUTPUT_DIR/System/$CFG_FILE - - crudini --set $OUTPUT_DIR/System/$CFG_FILE 'Engine.GameEngine' _ServerActors $SSBBaseName.SmartSBServerActor - sed -i 's/_ServerActors/ServerActors/g' $OUTPUT_DIR/System/$CFG_FILE + #todo: config SSB ? echo enable ok } @@ -35,9 +57,9 @@ function disable() { SSBUFile=$(find $OUTPUT_DIR/System -type f -iname "SmartSB*.u" ! -name "SmartSBStats.u" -exec basename {} \;) SSBBaseName="${SSBUFile%.*}" - sed -i "/ServerPackages[[:space:]]*=[[:space:]]*$SSBBaseName/d" $OUTPUT_DIR/System/$CFG_FILE - sed -i "/ServerPackages[[:space:]]*=[[:space:]]*SmartSBStats/d" $OUTPUT_DIR/System/$CFG_FILE - sed -i "/ServerActors[[:space:]]*=[[:space:]]*$SSBBaseName.SmartSBServerActor/d" $OUTPUT_DIR/System/$CFG_FILE + del_ServerPackage $SSBBaseName + del_ServerPackage SmartSBStats + del_ServerActors $SSBBaseName.SmartSBServerActor echo disable ok }