|
|
@@ -38,7 +38,7 @@ fn_default_config_remote() {
|
|
|
for config in "${array_configs[@]}"; do
|
|
|
fn_fetch_file "${githuburl}/${shortname}/${config}" "${remote_fileurl_backup}" "GitHub" "Bitbucket" "${lgsmdir}/config-default/config-game" "${config}" "nochmodx" "norun" "forcedl" "nohash"
|
|
|
done
|
|
|
-
|
|
|
+ fn_check_cfgdir
|
|
|
for config in "${array_configs[@]}"; do
|
|
|
# every config is copied
|
|
|
echo -en "copying config file [ ${italic}${config}${default} ]"
|
|
|
@@ -67,6 +67,7 @@ fn_default_config_remote() {
|
|
|
|
|
|
# Copys local default config to server config location.
|
|
|
fn_default_config_local() {
|
|
|
+ fn_check_cfgdir
|
|
|
echo -en "copying config file [ ${italic}${servercfgdefault}${default} ]"
|
|
|
cp -nv "${servercfgdir}/${servercfgdefault}" "${servercfgfullpath}"
|
|
|
if [ "${exitcode}" != 0 ]; then
|
|
|
@@ -83,13 +84,10 @@ fn_default_config_local() {
|
|
|
# PASSWORD to random password
|
|
|
fn_set_config_vars() {
|
|
|
if [ -f "${servercfgfullpath}" ]; then
|
|
|
- random=$(tr -dc 'A-Za-z0-9_' < /dev/urandom 2> /dev/null | head -c 8 | xargs)
|
|
|
servername="LinuxGSM"
|
|
|
- rconpass="admin${random}"
|
|
|
-
|
|
|
echo -en "changing server name"
|
|
|
changes=""
|
|
|
- # prevents var from being overwritten with the servername.
|
|
|
+ # prevents the variable SERVERNAME from being overwritten with the $servername.
|
|
|
if grep -q "SERVERNAME=SERVERNAME" "${lgsmdir}/config-default/config-game/${config}" 2> /dev/null; then
|
|
|
changes+=$(sed -i "s/SERVERNAME=SERVERNAME/SERVERNAME=${servername}/g w /dev/stdout" "${servercfgfullpath}")
|
|
|
elif grep -q "SERVERNAME=\"SERVERNAME\"" "${lgsmdir}/config-default/config-game/${config}" 2> /dev/null; then
|
|
|
@@ -100,7 +98,7 @@ fn_set_config_vars() {
|
|
|
if [ "$?" -ne 0 ]; then # shellcheck disable=SC2181
|
|
|
fn_print_fail_eol
|
|
|
fn_script_log_fatal "changing server name"
|
|
|
- elif [ "$changes" != "" ]; then
|
|
|
+ elif [ "${changes}" != "" ]; then
|
|
|
fn_print_ok_eol_nl
|
|
|
fn_script_log_pass "changing server name"
|
|
|
else
|
|
|
@@ -108,7 +106,9 @@ fn_set_config_vars() {
|
|
|
fi
|
|
|
unset changes
|
|
|
|
|
|
- echo -en "changing rcon/admin password"
|
|
|
+ randomstring=$(tr -dc 'A-Za-z0-9_' < /dev/urandom 2> /dev/null | head -c 8 | xargs)
|
|
|
+ rconpass="admin${randomstring}"
|
|
|
+ echo -en "generating rcon/admin password"
|
|
|
changes=""
|
|
|
if [ "${shortname}" == "squad" ]; then
|
|
|
changes+=$(sed -i "s/ADMINPASSWORD/${rconpass}/g" "${servercfgdir}/Rcon.cfg")
|
|
|
@@ -117,10 +117,10 @@ fn_set_config_vars() {
|
|
|
fi
|
|
|
if [ "$?" -ne 0 ]; then # shellcheck disable=SC2181
|
|
|
fn_print_fail_eol
|
|
|
- fn_script_log_fatal "changing rcon/admin password"
|
|
|
- elif [ "$changes" != "" ]; then
|
|
|
+ fn_script_log_fatal "generating rcon/admin password"
|
|
|
+ elif [ "${changes}" != "" ]; then
|
|
|
fn_print_ok_eol_nl
|
|
|
- fn_script_log_pass "changing rcon/admin password"
|
|
|
+ fn_script_log_pass "generating rcon/admin password"
|
|
|
else
|
|
|
fn_print_skip_eol_nl
|
|
|
fi
|
|
|
@@ -130,52 +130,35 @@ fn_set_config_vars() {
|
|
|
|
|
|
# Changes some variables within the default Don't Starve Together configs.
|
|
|
fn_set_dst_config_vars() {
|
|
|
- ## cluster.ini
|
|
|
- if grep -Fq "SERVERNAME" "${clustercfgfullpath}"; then
|
|
|
- echo -e "changing server name."
|
|
|
- fn_script_log_info "changing server name."
|
|
|
- sed -i "s/SERVERNAME/LinuxGSM/g" "${clustercfgfullpath}"
|
|
|
- fn_sleep_time
|
|
|
- echo -e "changing shard mode."
|
|
|
- fn_script_log_info "changing shard mode."
|
|
|
- sed -i "s/USESHARDING/${sharding}/g" "${clustercfgfullpath}"
|
|
|
- fn_sleep_time
|
|
|
- echo -e "randomizing cluster key."
|
|
|
- fn_script_log_info "randomizing cluster key."
|
|
|
- randomkey=$(tr -dc A-Za-z0-9_ < /dev/urandom | head -c 8 | xargs)
|
|
|
- sed -i "s/CLUSTERKEY/${randomkey}/g" "${clustercfgfullpath}"
|
|
|
- fn_sleep_time
|
|
|
+ servername="LinuxGSM"
|
|
|
+ echo -en "changing cluster name"
|
|
|
+ changes=""
|
|
|
+ changes+=$(sed -i "s/SERVERNAME/${servername}/g" "${clustercfgfullpath}")
|
|
|
+ if [ "$?" -ne 0 ]; then # shellcheck disable=SC2181
|
|
|
+ fn_print_fail_eol
|
|
|
+ fn_script_log_fatal "changing cluster name"
|
|
|
+ elif [ "${changes}" != "" ]; then
|
|
|
+ fn_print_ok_eol_nl
|
|
|
+ fn_script_log_pass "changing cluster name"
|
|
|
else
|
|
|
- echo -e "${clustercfg} is already configured."
|
|
|
- fn_script_log_info "${clustercfg} is already configured."
|
|
|
- fi
|
|
|
-
|
|
|
- ## server.ini
|
|
|
- # removing unnecessary options (dependent on sharding & shard type).
|
|
|
- if [ "${sharding}" == "false" ]; then
|
|
|
- sed -i "s/ISMASTER//g" "${servercfgfullpath}"
|
|
|
- sed -i "/SHARDNAME/d" "${servercfgfullpath}"
|
|
|
- elif [ "${master}" == "true" ]; then
|
|
|
- sed -i "/SHARDNAME/d" "${servercfgfullpath}"
|
|
|
+ fn_print_skip_eol_nl
|
|
|
fi
|
|
|
+ unset changes
|
|
|
|
|
|
- echo -e "changing shard name."
|
|
|
- fn_script_log_info "changing shard name."
|
|
|
- sed -i "s/SHARDNAME/${shard}/g" "${servercfgfullpath}"
|
|
|
- fn_sleep_time
|
|
|
- echo -e "changing master setting."
|
|
|
- fn_script_log_info "changing master setting."
|
|
|
- sed -i "s/ISMASTER/${master}/g" "${servercfgfullpath}"
|
|
|
- fn_sleep_time
|
|
|
-
|
|
|
- ## worldgenoverride.lua
|
|
|
- if [ "${cave}" == "true" ]; then
|
|
|
- echo -e "defining ${shard} as cave in ${servercfgdir}/worldgenoverride.lua."
|
|
|
- fn_script_log_info "defining ${shard} as cave in ${servercfgdir}/worldgenoverride.lua."
|
|
|
- echo 'return { override_enabled = true, preset = "DST_CAVE", }' > "${servercfgdir}/worldgenoverride.lua"
|
|
|
+ randomstring=$(tr -dc A-Za-z0-9 < /dev/urandom 2> /dev/null | head -c 16 | xargs)
|
|
|
+ echo -en "generating cluster key"
|
|
|
+ changes=""
|
|
|
+ changes+=$(sed -i "s/CLUSTERKEY/${randomstring}/g" "${clustercfgfullpath}")
|
|
|
+ if [ "$?" -ne 0 ]; then # shellcheck disable=SC2181
|
|
|
+ fn_print_fail_eol
|
|
|
+ fn_script_log_fatal "generating cluster key"
|
|
|
+ elif [ "${changes}" != "" ]; then
|
|
|
+ fn_print_ok_eol_nl
|
|
|
+ fn_script_log_pass "generating cluster key"
|
|
|
+ else
|
|
|
+ fn_print_skip_eol_nl
|
|
|
fi
|
|
|
- fn_sleep_time
|
|
|
- echo -e ""
|
|
|
+ unset changes
|
|
|
}
|
|
|
|
|
|
# Lists local config file locations
|
|
|
@@ -215,25 +198,21 @@ elif [ "${shortname}" == "ahl2" ]; then
|
|
|
fn_set_config_vars
|
|
|
fn_list_config_locations
|
|
|
elif [ "${shortname}" == "ark" ]; then
|
|
|
- fn_check_cfgdir
|
|
|
array_configs+=(GameUserSettings.ini)
|
|
|
fn_default_config_remote
|
|
|
fn_set_config_vars
|
|
|
fn_list_config_locations
|
|
|
elif [ "${shortname}" == "arma3" ]; then
|
|
|
- fn_check_cfgdir
|
|
|
array_configs+=(server.cfg network.cfg)
|
|
|
fn_default_config_remote
|
|
|
fn_set_config_vars
|
|
|
fn_list_config_locations
|
|
|
elif [ "${shortname}" == "armar" ]; then
|
|
|
- fn_check_cfgdir
|
|
|
array_configs+=(server.json)
|
|
|
fn_default_config_remote
|
|
|
fn_set_config_vars
|
|
|
fn_list_config_locations
|
|
|
elif [ "${shortname}" == "ats" ]; then
|
|
|
- fn_check_cfgdir
|
|
|
array_configs+=(server_config.sii)
|
|
|
fn_default_config_remote
|
|
|
fn_set_config_vars
|
|
|
@@ -249,13 +228,11 @@ elif [ "${shortname}" == "bd" ]; then
|
|
|
fn_set_config_vars
|
|
|
fn_list_config_locations
|
|
|
elif [ "${shortname}" == "bt" ]; then
|
|
|
- fn_check_cfgdir
|
|
|
array_configs+=(serversettings.xml)
|
|
|
fn_default_config_remote
|
|
|
fn_set_config_vars
|
|
|
fn_list_config_locations
|
|
|
elif [ "${shortname}" == "btl" ]; then
|
|
|
- fn_check_cfgdir
|
|
|
array_configs+=(DefaultGame.ini)
|
|
|
fn_default_config_remote
|
|
|
fn_set_config_vars
|
|
|
@@ -361,7 +338,6 @@ elif [ "${shortname}" == "ct" ]; then
|
|
|
fn_set_config_vars
|
|
|
fn_list_config_locations
|
|
|
elif [ "${shortname}" == "dayz" ]; then
|
|
|
- fn_check_cfgdir
|
|
|
array_configs+=(server.cfg)
|
|
|
fn_default_config_remote
|
|
|
fn_set_config_vars
|
|
|
@@ -391,7 +367,6 @@ elif [ "${shortname}" == "dmc" ]; then
|
|
|
fn_set_config_vars
|
|
|
fn_list_config_locations
|
|
|
elif [ "${shortname}" == "dst" ]; then
|
|
|
- fn_check_cfgdir
|
|
|
array_configs+=(cluster.ini server.ini)
|
|
|
fn_default_config_remote
|
|
|
fn_set_dst_config_vars
|
|
|
@@ -420,7 +395,6 @@ elif [ "${shortname}" == "etl" ]; then
|
|
|
fn_set_config_vars
|
|
|
fn_list_config_locations
|
|
|
elif [ "${shortname}" == "ets2" ]; then
|
|
|
- fn_check_cfgdir
|
|
|
array_configs+=(server_config.sii)
|
|
|
fn_default_config_remote
|
|
|
fn_set_config_vars
|
|
|
@@ -516,7 +490,6 @@ elif [ "${shortname}" == "mohaa" ]; then
|
|
|
fn_set_config_vars
|
|
|
fn_list_config_locations
|
|
|
elif [ "${shortname}" == "mh" ]; then
|
|
|
- fn_check_cfgdir
|
|
|
array_configs+=(Game.ini)
|
|
|
fn_default_config_remote
|
|
|
fn_set_config_vars
|
|
|
@@ -537,7 +510,6 @@ elif [ "${shortname}" == "nd" ]; then
|
|
|
fn_set_config_vars
|
|
|
fn_list_config_locations
|
|
|
elif [ "${shortname}" == "mta" ]; then
|
|
|
- fn_check_cfgdir
|
|
|
array_configs+=(acl.xml mtaserver.conf vehiclecolors.conf)
|
|
|
fn_default_config_remote
|
|
|
fn_list_config_locations
|
|
|
@@ -547,7 +519,6 @@ elif [ "${shotname}" == "mom" ]; then
|
|
|
fn_set_config_vars
|
|
|
fn_list_config_locations
|
|
|
elif [ "${shortname}" == "pvr" ]; then
|
|
|
- fn_check_cfgdir
|
|
|
array_configs+=(Game.ini)
|
|
|
fn_default_config_remote
|
|
|
fn_set_config_vars
|
|
|
@@ -557,13 +528,11 @@ elif [ "${shortname}" == "pvkii" ]; then
|
|
|
fn_set_config_vars
|
|
|
fn_list_config_locations
|
|
|
elif [ "${shortname}" == "pz" ]; then
|
|
|
- fn_check_cfgdir
|
|
|
array_configs+=(server.ini)
|
|
|
fn_default_config_remote
|
|
|
fn_set_config_vars
|
|
|
fn_list_config_locations
|
|
|
elif [ "${shortname}" == "nec" ]; then
|
|
|
- fn_check_cfgdir
|
|
|
array_configs+=(server.cfg)
|
|
|
fn_default_config_remote
|
|
|
fn_set_config_vars
|
|
|
@@ -611,7 +580,6 @@ elif [ "${shortname}" == "rtcw" ]; then
|
|
|
fn_set_config_vars
|
|
|
fn_list_config_locations
|
|
|
elif [ "${shortname}" == "rust" ]; then
|
|
|
- fn_check_cfgdir
|
|
|
array_configs+=(server.cfg)
|
|
|
fn_default_config_remote
|
|
|
fn_list_config_locations
|
|
|
@@ -695,7 +663,6 @@ elif [ "${shortname}" == "terraria" ]; then
|
|
|
fn_set_config_vars
|
|
|
fn_list_config_locations
|
|
|
elif [ "${shortname}" == "tu" ]; then
|
|
|
- fn_check_cfgdir
|
|
|
array_configs+=(TowerServer.ini)
|
|
|
fn_default_config_remote
|
|
|
fn_set_config_vars
|