@ -19,14 +19,13 @@ fn_check_cfgdir() {
# Downloads default configs from Game-Server-Configs repo to lgsm/config-default.
fn_fetch_default_config( ) {
echo -e ""
echo -e " ${ lightyellow } Downloading ${ gamename } Configs ${ default } "
echo -e "================================="
echo -e " ${ bold } ${ lightyellow } Downloading ${ gamename } Configs ${ default } "
echo -e " ${ bold } =================================${ default } "
echo -e "Default configs are downloaded from:"
echo -e ""
echo -e " ${ italic } https://github.com/GameServerManagers/Game-Server-Configs ${ default } "
echo -e ""
fn_sleep_time
mkdir -p " ${ lgsmdir } /config-default/config-game "
githuburl = "https://raw.githubusercontent.com/GameServerManagers/Game-Server-Configs/main"
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"
@ -39,33 +38,29 @@ fn_default_config_remote() {
for config in " ${ array_configs [@] } " ; do
# every config is copied
echo -en " copying config file [ ${ config } ] "
fn_script_log_info
fn_sleep_time
fn_script_log_info " copying config file ${ config } "
if [ " ${ config } " = = " ${ servercfgdefault } " ] ; then
mkdir -p " ${ servercfgdir } "
cp -nv " ${ lgsmdir } /config-default/config-game/ ${ config } " " ${ servercfgfullpath } "
exitcode = $?
elif [ " ${ shortname } " = = "arma3" ] && [ " ${ config } " = = " ${ networkcfgdefault } " ] ; then
mkdir -p " ${ servercfgdir } "
cp -nv " ${ lgsmdir } /config-default/config-game/ ${ config } " " ${ networkcfgfullpath } "
exitcode = $?
elif [ " ${ shortname } " = = "dst" ] && [ " ${ config } " = = " ${ clustercfgdefault } " ] ; then
mkdir -p " ${ clustercfgfullpath } "
cp -nv " ${ lgsmdir } /config-default/config-game/ ${ clustercfgdefault } " " ${ clustercfgfullpath } "
exitcode = $?
else
mkdir -p " ${ servercfgdir } "
cp -nv " ${ lgsmdir } /config-default/config-game/ ${ config } " " ${ servercfgdir } / ${ config } "
exitcode = $?
fi
if [ " ${ exitcode } " != 0 ] ; then
fn_print_failure_eol
if [ " $? " -ne 0 ] ; then # shellcheck disable=SC2181
fn_print_failure_eol_nl
fn_script_log_fatal " copying config file ${ servercfg } . "
else
fn_print_ok_eol
fn_print_ok_eol_nl
fn_script_log_pass " copying config file ${ servercfg } . "
fi
done
fn_sleep_time
}
# Copys local default config to server config location.
@ -89,25 +84,42 @@ fn_set_config_vars() {
random = $( tr -dc 'A-Za-z0-9_' < /dev/urandom 2> /dev/null | head -c 8 | xargs)
servername = "LinuxGSM"
rconpass = " admin ${ random } "
echo -e "changing hostname"
fn_script_log_info "changing host name"
fn_sleep_time
echo -en "changing server name"
fn_script_log_info "changing server name"
# prevents var from being overwritten with the servername.
changes = ""
if grep -q "SERVERNAME=SERVERNAME" " ${ lgsmdir } /config-default/config-game/ ${ config } " 2> /dev/null; then
sed -i " s/SERVERNAME=SERVERNAME/SERVERNAME= ${ servername } /g " " ${ servercfgfullpath } "
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
sed -i " s/SERVERNAME=\"SERVERNAME\"/SERVERNAME=\" ${ servername } \"/g " " ${ servercfgfullpath } "
changes += $( sed -i " s/SERVERNAME=\"SERVERNAME\"/SERVERNAME=\" ${ servername } \"/g w /dev/stdout " " ${ servercfgfullpath } " )
else
sed -i " s/SERVERNAME/ ${ servername } /g " " ${ servercfgfullpath } "
changes += $( sed -i " s/SERVERNAME/ ${ servername } /g w /dev/stdout " " ${ servercfgfullpath } " )
fi
echo -e "changing rcon/admin password"
if [ " $? " -ne 0 ] ; then # shellcheck disable=SC2181
fn_print_fail_eol
elif [ " $changes " != "" ] ; then
fn_print_ok_eol_nl
else
fn_print_skip_eol_nl
fi
unset changes
echo -en "changing rcon/admin password"
fn_script_log_info "changing rcon/admin password"
if [ " ${ shortname } " = = "squad" ] ; then
sed -i " s/ADMINPASSWORD/ ${ rconpass } /g " " ${ servercfgdir } /Rcon.cfg "
else
sed -i " s/ADMINPASSWORD/ ${ rconpass } /g " " ${ servercfgfullpath } "
fi
fn_sleep_time
if [ " $? " -ne 0 ] ; then # shellcheck disable=SC2181
fn_print_fail_eol
elif [ " $changes " != "" ] ; then
fn_print_ok_eol_nl
else
fn_print_skip_eol_nl
fi
unset changes
fi
}