diff --git a/.gitignore b/.gitignore index 2476eb7b0..5a4d10b29 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,6 @@ */cfg/servers/* */lgsm/functions/* */lgsm/cfg/servers/* +*/lgsm/games/* +*/lgsm/settings.tmp/* + diff --git a/Insurgency/insserver b/Insurgency/insserver index ac290a952..db442e532 100755 --- a/Insurgency/insserver +++ b/Insurgency/insserver @@ -141,7 +141,7 @@ fn_create_config(){ } fn_settings_flush(){ - if [ -e $settingsdir ] + if [ -e $settingsdir ]; then rm -rf $settingsdir > /dev/null fi mkdir -p $settingsdir @@ -159,7 +159,7 @@ fn_set_game_params(){ param_name=$2 param_value=$3 param_comment=$4 - fn_update_config $param_name $param_value "${settingsdir}/${param_set}" $param_comment + fn_update_config "${param_name}" "${param_value}" "${settingsdir}/${param_set}" "${param_comment}" } fn_get_game_params(){ param_set=$1 @@ -167,76 +167,8 @@ fn_get_game_params(){ param_default=$3 } -# Flush old setings buffer -fn_settings_flush -# Import this game's settings -fn_settings_import $game -# If defaults are missing, or from an older version, overwrite the file -# TODO: Perhaps pull this from Git instead? -#cfgver=$(grep lgsm_version ${cfg_file_default} 2>/dev/null | cut -d'=' -f2 | sed -e 's/["]//g') -#if [ "${cfgver}" != "${version}" ]; then - -# New method is to always run this function, it will overwrite defaults with whatever the new script values are -fn_create_config default - -# Load defaults -source $cfg_file_default - -# Load sitewide common settings (so that Git updates can safely overwrite default.cfg) -if [ ! -f $cfg_file_common ]; then fn_create_config common; else source $cfg_file_common; fi - -# Load instance specific settings -if [ ! -f $cfg_file_instance ]; then fn_create_config instance; else source $cfg_file_instance; fi - -# Set the paramaters to send to srcds -# https://developer.valvesoftware.com/wiki/Command_Line_Options#Source_Dedicated_Server - - -fn_parms(){ -#TODO: Put in some conditional logic to handle generating the parm string so we can make this a little less game specific -parms="${parms} -game ${game}" -parms="${parms} -strictportbind" -parms="${parms} -ip ${ip}" -parms="${parms} -port ${port}" -parms="${parms} -maxplayers ${maxplayers}" -parms="${parms} ${srcds_parms}" -parms="${parms} +clientport ${clientport}" -parms="${parms} +tv_port ${sourcetvport}" -parms="${parms} +sv_playlist ${playlist}" -parms="${parms} +mapcyclefile ${mapcyclefile}" -parms="${parms} +servercfgfile ${servercfg}" -parms="${parms} +map ${defaultmap} ${defaultmode}" -} - -#### Advanced Variables #### -# Directories -lockselfname=".${servicename}.lock" -filesdir="${rootdir}/serverfiles" -systemdir="${filesdir}/insurgency" -executabledir="${filesdir}" -executable="./srcds_linux" -servercfg="${servicename}.cfg" -servercfgdir="${systemdir}/cfg" -servercfgfullpath="${servercfgdir}/${servercfg}" -servercfgdefault="${servercfgdir}/lgsm-default.cfg" -backupdir="${lgsmdir}/backups" - -#In the event that you have library issues after an update, this may resolve it. -#export LD_LIBRARY_PATH="${filesdir}:${filesdir}/bin:${LD_LIBRARY_PATH}" - -# Logging -gamelogdir="${systemdir}/logs" -scriptlogdir="${lgsmdir}/log/script" -consolelogdir="${lgsmdir}/log/console" - -scriptlog="${scriptlogdir}/${servicename}-script.log" -consolelog="${consolelogdir}/${servicename}-console.log" -emaillog="${scriptlogdir}/${servicename}-email.log" - -scriptlogdate="${scriptlogdir}/${servicename}-script-$(date '+%d-%m-%Y-%H-%M-%S').log" -consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%d-%m-%Y-%H-%M-%S').log" ##### Script ##### # Do not edit @@ -305,6 +237,74 @@ fn_getgithubfile(){ fi } +# Flush old setings buffer +fn_settings_flush + +# Import this game's settings +fn_settings_import $game + +# New method is to always run this function, it will overwrite defaults with whatever the new script values are +fn_create_config default + +# Load defaults +source $cfg_file_default + +# Load sitewide common settings (so that Git updates can safely overwrite default.cfg) +if [ ! -f $cfg_file_common ]; then fn_create_config common; else source $cfg_file_common; fi + +# Load instance specific settings +if [ ! -f $cfg_file_instance ]; then fn_create_config instance; else source $cfg_file_instance; fi + +#### Advanced Variables #### +# Directories +lockselfname=".${servicename}.lock" +filesdir="${rootdir}/serverfiles" +systemdir="${filesdir}/${game}" +executabledir="${filesdir}" +executable="./srcds_linux" +servercfg="${servicename}.cfg" +servercfgdir="${systemdir}/cfg" +servercfgfullpath="${servercfgdir}/${servercfg}" +servercfgdefault="${servercfgdir}/lgsm-default.cfg" +backupdir="${lgsmdir}/backups" + +#In the event that you have library issues after an update, this may resolve it. +#export LD_LIBRARY_PATH="${filesdir}:${filesdir}/bin:${LD_LIBRARY_PATH}" + +# Logging +gamelogdir="${systemdir}/logs" +scriptlogdir="${lgsmdir}/log/script" +consolelogdir="${lgsmdir}/log/console" + +scriptlog="${scriptlogdir}/${servicename}-script.log" +consolelog="${consolelogdir}/${servicename}-console.log" +emaillog="${scriptlogdir}/${servicename}-email.log" + +scriptlogdate="${scriptlogdir}/${servicename}-script-$(date '+%d-%m-%Y-%H-%M-%S').log" +consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%d-%m-%Y-%H-%M-%S').log" + + + + + +# Set the paramaters to send to srcds +# https://developer.valvesoftware.com/wiki/Command_Line_Options#Source_Dedicated_Server +fn_parms(){ +#TODO: Put in some conditional logic to handle generating the parm string so we can make this a little less game specific +parms="${parms} -game ${game}" +parms="${parms} -strictportbind" +parms="${parms} -ip ${ip}" +parms="${parms} -port ${port}" +parms="${parms} -maxplayers ${maxplayers}" +parms="${parms} ${srcds_parms}" +parms="${parms} +clientport ${clientport}" +parms="${parms} +tv_port ${sourcetvport}" +parms="${parms} +sv_playlist ${playlist}" +parms="${parms} +mapcyclefile ${mapcyclefile}" +parms="${parms} +servercfgfile ${servercfg}" +parms="${parms} +map ${defaultmap} ${defaultmode}" +} + # fn_runfunction fn_runfunction(){ fn_getgithubfile "functions/${functionfile}" 1 diff --git a/games/_default b/games/_default index 3f4a7e844..9c62574d9 100644 --- a/games/_default +++ b/games/_default @@ -2,9 +2,9 @@ # _default # Base defaults for all games -fn_set_game_params settings "email" "email@example.com" "Email address for notification -fn_set_game_params settings "emailnotification" "off" "Email notification (on|off) -fn_set_game_params settings "ip" "0.0.0.0" "IP Address to bind for server +fn_set_game_params settings "email" "email@example.com" "Email address for notification" +fn_set_game_params settings "emailnotification" "off" "Email notification (on|off)" +fn_set_game_params settings "ip" "0.0.0.0" "IP Address to bind for server" fn_set_game_params settings "lgsm_version" "${version}" "Version of LGSM that created this config" fn_set_game_params settings "logdays" "7" "Number of days to retain logs" fn_set_game_params settings "updateonstart" "off" "Update game on start" diff --git a/games/_srcds b/games/_srcds index 54f9dc07c..361f3120f 100644 --- a/games/_srcds +++ b/games/_srcds @@ -4,19 +4,18 @@ fn_settings_import _default -fn_set_game_params params "" "params_minus params_plus" -fn_set_game_params params_minus "-game" "game" +fn_set_game_params params "" "\${params_minus} \${params_plus}" +fn_set_game_params params_minus "-game" "\${game}" fn_set_game_params params_minus "-strictportbind" "" -fn_set_game_params params_minus "-ip" "ip" -fn_set_game_params params_minus "-port" "port" -fn_set_game_params params_minus "-maxplayers" "maxplayers" +fn_set_game_params params_minus "-ip" "\${ip}" +fn_set_game_params params_minus "-port" "\${port}" +fn_set_game_params params_minus "-maxplayers" "\${maxplayers}" -fn_set_game_params params_plus "+clientport" "clientport" -fn_set_game_params params_plus "+tv_port" "sourcetvport" -fn_set_game_params params_plus "+sv_playlist" "playlist" -fn_set_game_params params_plus "+mapcyclefile" "mapcyclefile" -fn_set_game_params params_plus "+servercfgfile" "servercfg" -fn_set_game_params params_plus "+map" "defaultmap" +fn_set_game_params params_plus "+clientport" "\${clientport}" +fn_set_game_params params_plus "+tv_port" "\${sourcetvport}" +fn_set_game_params params_plus "+mapcyclefile" "\${mapcyclefile}" +fn_set_game_params params_plus "+servercfgfile" "\${servercfg}" +fn_set_game_params params_plus "+map" "\${defaultmap}" fn_set_game_params settings "appid" "204" "Steam App ID" fn_set_game_params settings "clientport" "27005" "Client Port" @@ -29,5 +28,5 @@ fn_set_game_params settings "port" "27015" "Port to bind for server" fn_set_game_params settings "servercfg" "${instance}.cfg" "Server Config file" fn_set_game_params settings "sourcetvport" "27020" "SourceTV Port" fn_set_game_params settings "srcds_parms" "" "Additional SRCDS Parameters. Put the parameters that start with \"-\" first, then \"+\" parameters after" -fn_set_game_params settings "steampass" "" "" -fn_set_game_params settings "steamuser" "anonymous" "" +fn_set_game_params settings "steampass" "" "Steam Password" +fn_set_game_params settings "steamuser" "anonymous" "Steam Username" diff --git a/games/insurgency b/games/insurgency index e1b25c1d6..44d5fd76a 100644 --- a/games/insurgency +++ b/games/insurgency @@ -4,7 +4,7 @@ fn_settings_import _srcds -fn_set_game_params params_plus "+sv_playlist" "playlist" +fn_set_game_params params_plus "+sv_playlist" "\${playlist}" fn_set_game_params settings "appid" "237410" fn_set_game_params settings "defaultmap" "ministry checkpoint"