diff --git a/lgsm/functions/README.md b/lgsm/functions/README.md
deleted file mode 100644
index de008ecfa3..0000000000
--- a/lgsm/functions/README.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# LinuxGSM - Modules
-
-These modules are scripts that are called upon by the primary script linuxgsm.sh
-
-## Module Names
-
-Modules have been named to give an idea of what the function does.
-
-- core: Essential modules that will always run first.
-- command: Primary command function.
-- check: Runs checks that will either halt on or fix an issue.
-- dev: development modules.
-- fix: Applies a game server specific fix.
-- info: retrieves information from a source such as config file or the OS.
-- install: modules related to the installer.
-- monitor: modules related to monitor.
-- update: modules that update the game server.
diff --git a/lgsm/functions/alert.sh b/lgsm/functions/alert.sh
deleted file mode 100644
index 59deae2b6e..0000000000
--- a/lgsm/functions/alert.sh
+++ /dev/null
@@ -1,238 +0,0 @@
-#!/bin/bash
-# LinuxGSM alert.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Overall function for managing alerts.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-# Generates alert log of the details at the time of the alert.
-# Used with email alerts.
-fn_alert_log() {
- info_distro.sh
- info_game.sh
- info_messages.sh
- if [ -f "${alertlog}" ]; then
- rm -f "${alertlog:?}"
- fi
-
- {
- fn_info_message_head
- fn_info_message_distro
- fn_info_message_server_resource
- fn_info_message_gameserver_resource
- fn_info_message_gameserver
- fn_info_logs
- } | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" | tee -a "${alertlog}" > /dev/null 2>&1
-}
-
-fn_alert_test() {
- fn_script_log_info "Sending test alert"
- alertsubject="Alert - ${selfname} - Test"
- alertemoji="🚧"
- alertsound="1"
- alerturl="not enabled"
- alertbody="Testing LinuxGSM Alert. No action to be taken."
-}
-
-fn_alert_restart() {
- fn_script_log_info "Sending alert: Restarted: ${executable} not running"
- alertsubject="Alert - ${selfname} - Restarted"
- alertemoji="🚨"
- alertsound="2"
- alerturl="not enabled"
- alertbody="${selfname} ${executable} not running"
-}
-
-fn_alert_restart_query() {
- fn_script_log_info "Sending alert: Restarted: ${selfname}"
- alertsubject="Alert - ${selfname} - Restarted"
- alertemoji="🚨"
- alertsound="2"
- alerturl="not enabled"
- alertbody="Unable to query: ${selfname}"
-}
-
-fn_alert_update() {
- fn_script_log_info "Sending alert: Updated"
- alertsubject="Alert - ${selfname} - Updated"
- alertemoji="🎮"
- alertsound="1"
- alerturl="not enabled"
- alertbody="${gamename} received update: ${remotebuildversion}"
-}
-
-fn_alert_check_update() {
- fn_script_log_info "Sending alert: Update available"
- alertsubject="Alert - ${selfname} - Update available"
- alertemoji="🎮"
- alertsound="1"
- alerturl="not enabled"
- alertbody="${gamename} update available: ${remotebuildversion}"
-}
-
-fn_alert_permissions() {
- fn_script_log_info "Sending alert: Permissions error"
- alertsubject="Alert - ${selfname}: Permissions error"
- alertemoji="❗"
- alertsound="2"
- alerturl="not enabled"
- alertbody="${selfname} has permissions issues"
-}
-
-fn_alert_config() {
- fn_script_log_info "Sending alert: New _default.cfg"
- alertsubject="Alert - ${selfname} - New _default.cfg"
- alertemoji="🎮"
- alertsound="1"
- alerturl="not enabled"
- alertbody="${selfname} has received a new _default.cfg. Check file for changes."
-}
-
-if [ "${alert}" == "permissions" ]; then
- fn_alert_permissions
-elif [ "${alert}" == "restart" ]; then
- fn_alert_restart
-elif [ "${alert}" == "restartquery" ]; then
- fn_alert_restart_query
-elif [ "${alert}" == "test" ]; then
- fn_alert_test
-elif [ "${alert}" == "update" ]; then
- fn_alert_update
-elif [ "${alert}" == "check-update" ]; then
- fn_alert_check_update
-elif [ "${alert}" == "config" ]; then
- fn_alert_config
-fi
-
-# Generate alert log.
-fn_alert_log
-
-# Generates the more info link.
-if [ "${postalert}" == "on" ] && [ -n "${postalert}" ]; then
- exitbypass=1
- command_postdetails.sh
- fn_firstcommand_reset
- unset exitbypass
-elif [ "${postalert}" != "on" ] && [ "${commandname}" == "TEST-ALERT" ]; then
- fn_print_warn_nl "More Info not enabled"
- fn_script_log_warn "More Info alerts not enabled"
-fi
-
-if [ "${discordalert}" == "on" ] && [ -n "${discordalert}" ]; then
- alert_discord.sh
-elif [ "${discordalert}" != "on" ] && [ "${commandname}" == "TEST-ALERT" ]; then
- fn_print_warn_nl "Discord alerts not enabled"
- fn_script_log_warn "Discord alerts not enabled"
-elif [ -z "${discordtoken}" ] && [ "${commandname}" == "TEST-ALERT" ]; then
- fn_print_error_nl "Discord token not set"
- echo -e "* https://docs.linuxgsm.com/alerts/discord"
- fn_script_error "Discord token not set"
-fi
-
-if [ "${emailalert}" == "on" ] && [ -n "${email}" ]; then
- alert_email.sh
-elif [ "${emailalert}" != "on" ] && [ "${commandname}" == "TEST-ALERT" ]; then
- fn_print_warn_nl "Email alerts not enabled"
- fn_script_log_warn "Email alerts not enabled"
-elif [ -z "${email}" ] && [ "${commandname}" == "TEST-ALERT" ]; then
- fn_print_error_nl "Email not set"
- fn_script_log_error "Email not set"
-fi
-
-if [ "${gotifyalert}" == "on" ] && [ -n "${gotifyalert}" ]; then
- alert_gotify.sh
-elif [ "${gotifyalert}" != "on" ] && [ "${commandname}" == "TEST-ALERT" ]; then
- fn_print_warn_nl "Gotify alerts not enabled"
- fn_script_log_warn "Gotify alerts not enabled"
-elif [ -z "${gotifytoken}" ] && [ "${commandname}" == "TEST-ALERT" ]; then
- fn_print_error_nl "Gotify token not set"
- echo -e "* https://docs.linuxgsm.com/alerts/gotify"
- fn_script_error "Gotify token not set"
-elif [ -z "${gotifywebhook}" ] && [ "${commandname}" == "TEST-ALERT" ]; then
- fn_print_error_nl "Gotify webhook not set"
- echo -e "* https://docs.linuxgsm.com/alerts/gotify"
- fn_script_error "Gotify webhook not set"
-fi
-
-if [ "${iftttalert}" == "on" ] && [ -n "${iftttalert}" ]; then
- alert_ifttt.sh
-elif [ "${iftttalert}" != "on" ] && [ "${commandname}" == "TEST-ALERT" ]; then
- fn_print_warn_nl "IFTTT alerts not enabled"
- fn_script_log_warn "IFTTT alerts not enabled"
-elif [ -z "${ifttttoken}" ] && [ "${commandname}" == "TEST-ALERT" ]; then
- fn_print_error_nl "IFTTT token not set"
- echo -e "* https://docs.linuxgsm.com/alerts/ifttt"
- fn_script_error "IFTTT token not set"
-fi
-
-if [ "${mailgunalert}" == "on" ] && [ -n "${mailgunalert}" ]; then
- alert_mailgun.sh
-elif [ "${mailgunalert}" != "on" ] && [ "${commandname}" == "TEST-ALERT" ]; then
- fn_print_warn_nl "Mailgun alerts not enabled"
- fn_script_log_warn "Mailgun alerts not enabled"
-elif [ -z "${mailguntoken}" ] && [ "${commandname}" == "TEST-ALERT" ]; then
- fn_print_error_nl "Mailgun token not set"
- echo -e "* https://docs.linuxgsm.com/alerts/mailgun"
- fn_script_error "Mailgun token not set"
-fi
-
-if [ "${pushbulletalert}" == "on" ] && [ -n "${pushbullettoken}" ]; then
- alert_pushbullet.sh
-elif [ "${pushbulletalert}" != "on" ] && [ "${commandname}" == "TEST-ALERT" ]; then
- fn_print_warn_nl "Pushbullet alerts not enabled"
- fn_script_log_warn "Pushbullet alerts not enabled"
-elif [ -z "${pushbullettoken}" ] && [ "${commandname}" == "TEST-ALERT" ]; then
- fn_print_error_nl "Pushbullet token not set"
- echo -e "* https://docs.linuxgsm.com/alerts/pushbullet"
- fn_script_error "Pushbullet token not set"
-fi
-
-if [ "${pushoveralert}" == "on" ] && [ -n "${pushoveralert}" ]; then
- alert_pushover.sh
-elif [ "${pushoveralert}" != "on" ] && [ "${commandname}" == "TEST-ALERT" ]; then
- fn_print_warn_nl "Pushover alerts not enabled"
- fn_script_log_warn "Pushover alerts not enabled"
-elif [ -z "${pushovertoken}" ] && [ "${commandname}" == "TEST-ALERT" ]; then
- fn_print_error_nl "Pushover token not set"
- echo -e "* https://docs.linuxgsm.com/alerts/pushover"
- fn_script_error "Pushover token not set"
-fi
-
-if [ "${telegramalert}" == "on" ] && [ -n "${telegramtoken}" ]; then
- alert_telegram.sh
-elif [ "${telegramalert}" != "on" ] && [ "${commandname}" == "TEST-ALERT" ]; then
- fn_print_warn_nl "Telegram Messages not enabled"
- fn_script_log_warn "Telegram Messages not enabled"
-elif [ -z "${telegramtoken}" ] && [ "${commandname}" == "TEST-ALERT" ]; then
- fn_print_error_nl "Telegram token not set."
- echo -e "* https://docs.linuxgsm.com/alerts/telegram"
- fn_script_error "Telegram token not set."
-elif [ -z "${telegramchatid}" ] && [ "${commandname}" == "TEST-ALERT" ]; then
- fn_print_error_nl "Telegram chat id not set."
- echo -e "* https://docs.linuxgsm.com/alerts/telegram"
- fn_script_error "Telegram chat id not set."
-fi
-
-if [ "${rocketchatalert}" == "on" ] && [ -n "${rocketchatalert}" ]; then
- alert_rocketchat.sh
-elif [ "${rocketchatalert}" != "on" ] && [ "${commandname}" == "TEST-ALERT" ]; then
- fn_print_warn_nl "Rocketchat alerts not enabled"
- fn_script_log_warn "Rocketchat alerts not enabled"
-elif [ -z "${rocketchattoken}" ] && [ "${commandname}" == "TEST-ALERT" ]; then
- fn_print_error_nl "Rocketchat token not set"
- #echo -e "* https://docs.linuxgsm.com/alerts/slack"
- fn_script_error "Rocketchat token not set"
-fi
-
-if [ "${slackalert}" == "on" ] && [ -n "${slackalert}" ]; then
- alert_slack.sh
-elif [ "${slackalert}" != "on" ] && [ "${commandname}" == "TEST-ALERT" ]; then
- fn_print_warn_nl "Slack alerts not enabled"
- fn_script_log_warn "Slack alerts not enabled"
-elif [ -z "${slacktoken}" ] && [ "${commandname}" == "TEST-ALERT" ]; then
- fn_print_error_nl "Slack token not set"
- echo -e "* https://docs.linuxgsm.com/alerts/slack"
- fn_script_error "Slack token not set"
-fi
diff --git a/lgsm/functions/alert_discord.sh b/lgsm/functions/alert_discord.sh
deleted file mode 100644
index 7708175163..0000000000
--- a/lgsm/functions/alert_discord.sh
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/bin/bash
-# LinuxGSM alert_discord.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Sends Discord alert.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-json=$(
- cat << EOF
-{
- "username":"LinuxGSM",
- "avatar_url":"https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
- "file":"content",
- "embeds": [{
- "color": "2067276",
- "author": {
- "name": "${alertemoji} ${alertsubject} ${alertemoji}",
- "icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg"
- },
- "title": "${servername}",
- "description": "${alertbody} \n More info: ${alerturl}",
- "url": "",
- "type": "content",
- "thumbnail": {},
- "fields": [
- {
- "name": "Game",
- "value": "${gamename}",
- "inline": true
- },
- {
- "name": "Server IP",
- "value": "[${alertip}:${port}](https://www.gametracker.com/server_info/${alertip}:${port})",
- "inline": true
- },
- {
- "name": "Hostname",
- "value": "${HOSTNAME}",
- "inline": true
- }
- ]
- }]
-}
-EOF
-)
-
-fn_print_dots "Sending Discord alert"
-
-discordsend=$(curl --connect-timeout 10 -sSL -H "Content-Type: application/json" -X POST -d "$(echo -n "${json}" | jq -c .)" "${discordwebhook}")
-
-if [ -n "${discordsend}" ]; then
- fn_print_fail_nl "Sending Discord alert: ${discordsend}"
- fn_script_log_fatal "Sending Discord alert: ${discordsend}"
-else
- fn_print_ok_nl "Sending Discord alert"
- fn_script_log_pass "Sending Discord alert"
-fi
diff --git a/lgsm/functions/alert_email.sh b/lgsm/functions/alert_email.sh
deleted file mode 100644
index ad90e880f1..0000000000
--- a/lgsm/functions/alert_email.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash
-# LinuxGSM alert_email.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Sends email alert.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-fn_print_dots "Sending Email alert: ${email}"
-fn_sleep_time
-
-if [ -n "${emailfrom}" ]; then
- mail -s "${alertsubject}" -r "${emailfrom}" "${email}" < "${alertlog}"
-else
- mail -s "${alertsubject}" "${email}" < "${alertlog}"
-fi
-exitcode=$?
-if [ "${exitcode}" == "0" ]; then
- fn_print_ok_nl "Sending Email alert: ${email}"
- fn_script_log_pass "Sending Email alert: ${email}"
-else
- fn_print_fail_nl "Sending Email alert: ${email}"
- fn_script_log_fatal "Sending Email alert: ${email}"
-fi
diff --git a/lgsm/functions/alert_gotify.sh b/lgsm/functions/alert_gotify.sh
deleted file mode 100644
index faeba45934..0000000000
--- a/lgsm/functions/alert_gotify.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/bash
-# LinuxGSM alert_gotify.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Sends Gotify alert.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-json=$(
- cat << EOF
-{
- "title": "${alertemoji} ${alertsubject} ${alertemoji}",
- "message": "Server name\n${servername}\n\nMessage\n${alertbody}\n\nGame\n${gamename}\n\nServer IP\n${alertip}:${port}\n\nHostname\n${HOSTNAME}\n\nMore info\n${alerturl}",
- "priority": 5
-}
-EOF
-)
-
-fn_print_dots "Sending Gotify alert"
-
-gotifysend=$(curl --connect-timeout 10 -sSL "${gotifywebhook}/message"?token="${gotifytoken}" -H "Content-Type: application/json" -X POST -d "$(echo -n "${json}" | jq -c .)")
-
-if [ -n "${gotifysend}" ]; then
- fn_print_ok_nl "Sending Gotify alert"
- fn_script_log_pass "Sending Gotify alert"
-else
- fn_print_fail_nl "Sending Gotify alert: ${gotifysend}"
- fn_script_log_fatal "Sending Gotify alert: ${gotifysend}"
-fi
diff --git a/lgsm/functions/alert_ifttt.sh b/lgsm/functions/alert_ifttt.sh
deleted file mode 100644
index f8bbc24ad8..0000000000
--- a/lgsm/functions/alert_ifttt.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/bash
-# LinuxGSM alert_ifttt.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Sends IFTTT alert.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-json=$(
- cat << EOF
-{
- "value1": "${selfname}",
- "value2": "${alertemoji} ${alertsubject} ${alertemoji}",
- "value3": "Message: \n${alertbody}\n\nGame: \n${gamename}\n\nServer name: \n${servername}\n\nHostname: \n${HOSTNAME}\n\nServer IP: \n${alertip}:${port}\n\nMore info: \n${alerturl}"
-}
-EOF
-)
-
-fn_print_dots "Sending IFTTT alert"
-iftttsend=$(curl --connect-timeout 10 -sSL -H "Content-Type: application/json" -X POST -d "$(echo -n "${json}" | jq -c .)" "https://maker.ifttt.com/trigger/${iftttevent}/with/key/${ifttttoken}" | grep "Bad Request")
-
-if [ -n "${iftttsend}" ]; then
- fn_print_fail_nl "Sending IFTTT alert: ${pushbulletsend}"
- fn_script_log_fatal "Sending IFTTT alert: ${pushbulletsend}"
-else
- fn_print_ok_nl "Sending IFTTT alert"
- fn_script_log_pass "Sent IFTTT alert"
-fi
diff --git a/lgsm/functions/alert_mailgun.sh b/lgsm/functions/alert_mailgun.sh
deleted file mode 100644
index 25576209cd..0000000000
--- a/lgsm/functions/alert_mailgun.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash
-# LinuxGSM alert_mailgun.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Sends Mailgun Email alert.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-if [ "${mailgunapiregion}" == "eu" ]; then
- mailgunapiurl="https://api.eu.mailgun.net"
-else
- mailgunapiurl="https://api.mailgun.net"
-fi
-
-fn_print_dots "Sending Email alert: Mailgun: ${mailgunemail}"
-
-mailgunsend=$(curl --connect-timeout 10 -s --user "api:${mailguntoken}" \
- -F from="LinuxGSM <${mailgunemailfrom}>" \
- -F to="LinuxGSM Admin <${mailgunemail}>" \
- -F subject="${alertemoji} ${alertsubject} ${alertemoji}" \
- -F o:tag='alert' \
- -F o:tag='LinuxGSM' \
- -F text="$(cat "${alertlog}")" "${mailgunapiurl}/v3/${mailgundomain}/messages")
-
-if [ -z "${mailgunsend}" ]; then
- fn_print_fail_nl "Sending Email alert: Mailgun: ${mailgunemail}"
- fn_script_log_fatal "Sending Email alert: Mailgun: ${mailgunemail}"
-else
- fn_print_ok_nl "Sending Email alert: Mailgun: ${mailgunemail}"
- fn_script_log_pass "Sending Email alert: Mailgun: ${mailgunemail}"
-fi
diff --git a/lgsm/functions/alert_pushbullet.sh b/lgsm/functions/alert_pushbullet.sh
deleted file mode 100644
index 3e82d0db02..0000000000
--- a/lgsm/functions/alert_pushbullet.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/bash
-# LinuxGSM alert_pushbullet.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Sends Pushbullet Messenger alert.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-json=$(
- cat << EOF
-{
- "channel_tag": "${channeltag}",
- "type": "note",
- "title": "${alertemoji} ${alertsubject} ${alertemoji}",
- "body": "Server name\n${servername}\n\nMessage\n${alertbody}\n\nGame\n${gamename}\n\nServer IP\n${alertip}:${port}\n\nHostname\n${HOSTNAME}\n\nMore info\n${alerturl}"
-}
-EOF
-)
-
-fn_print_dots "Sending Pushbullet alert"
-pushbulletsend=$(curl --connect-timeout 10 -sSL -u """${pushbullettoken}"":" -H "Content-Type: application/json" -X POST -d "$(echo -n "${json}" | jq -c .)" "https://api.pushbullet.com/v2/pushes" | grep "error_code")
-
-if [ -n "${pushbulletsend}" ]; then
- fn_print_fail_nl "Sending Pushbullet alert: ${pushbulletsend}"
- fn_script_log_fatal "Sending Pushbullet alert: ${pushbulletsend}"
-else
- fn_print_ok_nl "Sending Pushbullet alert"
- fn_script_log_pass "Sent Pushbullet alert"
-fi
diff --git a/lgsm/functions/alert_pushover.sh b/lgsm/functions/alert_pushover.sh
deleted file mode 100644
index d7c0864787..0000000000
--- a/lgsm/functions/alert_pushover.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/bash
-# LinuxGSM alert_pushover.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Sends Pushover alert.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-fn_print_dots "Sending Pushover alert"
-
-# Different alerts are given different priorities and notification sounds.
-if [ "${alertsound}" == "1" ]; then
- alertsound=""
- alertpriority="0"
-elif [ "${alertsound}" == "2" ]; then
- # restarted.
- alertsound="siren"
- alertpriority="1"
-else
- alertsound=""
- alertpriority="0"
-fi
-
-pushoversend=$(curl --connect-timeout 10 -sS -F token="${pushovertoken}" -F user="${pushoveruserkey}" -F html="1" -F sound="${alertsound}" -F priority="${alertpriority}" -F title="${alertemoji} ${alertsubject} ${alertemoji}" -F message=" Server name
${servername}
Message
${alertbody}
Game
${gamename}
Server IP
${alertip}:${port}
Hostname
${HOSTNAME}
More info
${alerturl}" "https://api.pushover.net/1/messages.json" | grep errors)
-
-if [ -n "${pushoversend}" ]; then
- fn_print_fail_nl "Sending Pushover alert: ${pushoversend}"
- fn_script_log_fatal "Sending Pushover alert: ${pushoversend}"
-else
- fn_print_ok_nl "Sending Pushover alert"
- fn_script_log_pass "Sent Pushover alert"
-fi
diff --git a/lgsm/functions/alert_rocketchat.sh b/lgsm/functions/alert_rocketchat.sh
deleted file mode 100644
index 34d018e386..0000000000
--- a/lgsm/functions/alert_rocketchat.sh
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/bash
-# LinuxGSM alert_rocketchat.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Sends Rocketchat alert.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-json=$(
- cat << EOF
-{
- "alias": "LinuxGSM",
- "text": "*${alertemoji} ${alertsubject} ${alertemoji}* \n *${servername}* \n ${alertbody} \n More info: ${alerturl}",
- "attachments": [
- {
- "fields": [
- {
- "short": true,
- "title": "Game:",
- "value": "${gamename}"
- },
- {
- "short": true,
- "title": "Server IP:",
- "value": "${alertip}:${port}"
- },
- {
- "short": true,
- "title": "Hostname:",
- "value": "${HOSTNAME}"
- }
- ]
- }
- ]
-}
-EOF
-)
-
-fn_print_dots "Sending Rocketchat alert"
-
-rocketchatsend=$(curl --connect-timeout 10 -sSL -H "Content-Type: application/json" -X POST -d "$(echo -n "${json}" | jq -c .)" "${rocketchatwebhook}")
-
-if [ -n "${rocketchatsend}" ]; then
- fn_print_ok_nl "Sending Rocketchat alert"
- fn_script_log_pass "Sending Rocketchat alert"
-else
- fn_print_fail_nl "Sending Rocketchat alert: ${rocketchatsend}"
- fn_script_log_fatal "Sending Rocketchat alert: ${rocketchatsend}"
-fi
diff --git a/lgsm/functions/alert_slack.sh b/lgsm/functions/alert_slack.sh
deleted file mode 100644
index 2e87c1571a..0000000000
--- a/lgsm/functions/alert_slack.sh
+++ /dev/null
@@ -1,75 +0,0 @@
-#!/bin/bash
-# LinuxGSM alert_slack.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Sends Slack alert.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-json=$(
- cat << EOF
-{
- "attachments": [
- {
- "color": "#36a64f",
- "blocks": [
- {
- "type": "section",
- "text": {
- "type": "mrkdwn",
- "text": "*LinuxGSM Alert*"
- }
- },
- {
- "type": "section",
- "text": {
- "type": "mrkdwn",
- "text": "*${alertemoji} ${alertsubject}* \n ${alertbody}"
- }
- },
- {
- "type": "divider"
- },
- {
- "type": "section",
- "fields": [
- {
- "type": "mrkdwn",
- "text": "*Game:* \n ${gamename}"
- },
- {
- "type": "mrkdwn",
- "text": "*Server IP:* \n ${alertip}:${port}"
- },
- {
- "type": "mrkdwn",
- "text": "*Server Name:* \n ${servername}"
- }
- ]
- },
- {
- "type": "section",
- "text": {
- "type": "mrkdwn",
- "text": "Hostname: ${HOSTNAME} / More info: ${alerturl}"
- }
- }
- ]
- }
- ]
-}
-EOF
-)
-
-fn_print_dots "Sending Slack alert"
-
-slacksend=$(curl --connect-timeout 10 -sSL -H "Content-Type: application/json" -X POST -d "$(echo -n "${json}" | jq -c .)" "${slackwebhook}")
-
-if [ "${slacksend}" == "ok" ]; then
- fn_print_ok_nl "Sending Slack alert"
- fn_script_log_pass "Sending Slack alert"
-else
- fn_print_fail_nl "Sending Slack alert: ${slacksend}"
- fn_script_log_fatal "Sending Slack alert: ${slacksend}"
-fi
diff --git a/lgsm/functions/alert_telegram.sh b/lgsm/functions/alert_telegram.sh
deleted file mode 100644
index 27e34beb4c..0000000000
--- a/lgsm/functions/alert_telegram.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/bash
-# LinuxGSM alert_telegram.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Sends Telegram Messenger alert.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-json=$(
- cat << EOF
-{
- "chat_id": "${telegramchatid}",
- "parse_mode": "HTML",
- "text": "${alertemoji} ${alertsubject} ${alertemoji}\n\nServer name\n${servername}\n\nMessage\n${alertbody}\n\nGame\n${gamename}\n\nServer IP\n${alertip}:${port}\n\nHostname\n${HOSTNAME}\n\nMore info\n${alerturl}",
- "disable_web_page_preview": "yes"
-}
-EOF
-)
-
-fn_print_dots "Sending Telegram alert"
-telegramsend=$(curl --connect-timeout 10 -sSL -H "Content-Type: application/json" -X POST -d "$(echo -n "${json}" | jq -c .)" ${curlcustomstring} "https://${telegramapi}/bot${telegramtoken}/sendMessage" | grep "error_code")
-
-if [ -n "${telegramsend}" ]; then
- fn_print_fail_nl "Sending Telegram alert: ${telegramsend}"
- fn_script_log_fatal "Sending Telegram alert: ${telegramsend}"
-else
- fn_print_ok_nl "Sending Telegram alert"
- fn_script_log_pass "Sent Telegram alert"
-fi
diff --git a/lgsm/functions/check.sh b/lgsm/functions/check.sh
deleted file mode 100644
index e19853424c..0000000000
--- a/lgsm/functions/check.sh
+++ /dev/null
@@ -1,101 +0,0 @@
-#!/bin/bash
-# LinuxGSM check.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Overall function for managing checks.
-# Runs checks that will either halt on or fix an issue.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-# Every command that requires checks just references check.sh.
-# check.sh selects which checks to run by using arrays.
-
-if [ "${commandname}" != "INSTALL" ]; then
- check_root.sh
-fi
-
-if [ "${commandname}" != "UPDATE-LGSM" ]; then
- check_version.sh
-fi
-
-check_tmuxception.sh
-
-if [ "$(whoami)" != "root" ] || [ -f /.dockerenv ]; then
- if [ "${commandname}" != "MONITOR" ]; then
- check_permissions.sh
- fi
-fi
-
-if [ "${commandname}" != "INSTALL" ] && [ "${commandname}" != "UPDATE-LGSM" ] && [ "${commandname}" != "DETAILS" ] && [ "${commandname}" != "POST-DETAILS" ]; then
- check_system_dir.sh
-fi
-
-allowed_commands_array=(DEBUG START)
-for allowed_command in "${allowed_commands_array[@]}"; do
- if [ "${allowed_command}" == "${commandname}" ]; then
- check_executable.sh
- fi
-done
-
-if [ "$(whoami)" != "root" ] || [ -f /.dockerenv ]; then
- allowed_commands_array=(DEBUG START INSTALL)
- for allowed_command in "${allowed_commands_array[@]}"; do
- if [ "${allowed_command}" == "${commandname}" ]; then
- check_glibc.sh
- fi
- done
-fi
-
-allowed_commands_array=(BACKUP CHANGE-PASSWORD CONSOLE DEBUG DETAILS FASTDL MAP-COMPRESSOR MODS-INSTALL MODS-REMOVE MODS-UPDATE MONITOR POST-DETAILS RESTART START STOP TEST-ALERT UPDATE UPDATE-LGSM VALIDATE WIPE)
-for allowed_command in "${allowed_commands_array[@]}"; do
- if [ "${allowed_command}" == "${commandname}" ]; then
- check_logs.sh
- fi
-done
-
-allowed_commands_array=(DEBUG START)
-for allowed_command in "${allowed_commands_array[@]}"; do
- if [ "${allowed_command}" == "${commandname}" ]; then
- check_deps.sh
- fi
-done
-
-allowed_commands_array=(CONSOLE DEBUG MONITOR START STOP)
-for allowed_command in "${allowed_commands_array[@]}"; do
- if [ "${allowed_command}" == "${commandname}" ]; then
- check_config.sh
- fi
-done
-
-allowed_commands_array=(DEBUG DETAILS DEV-QUERY-RAW MONITOR POST-DETAILS START STOP)
-for allowed_command in "${allowed_commands_array[@]}"; do
- if [ "${allowed_command}" == "${commandname}" ]; then
- if [ -z "${installflag}" ]; then
- check_ip.sh
- fi
- fi
-done
-
-allowed_commands_array=(CHECK-UPDATE DEBUG MONITOR START UPDATE VALIDATE)
-for allowed_command in "${allowed_commands_array[@]}"; do
- if [ "${allowed_command}" == "${commandname}" ]; then
- if [ "${appid}" ]; then
- check_steamcmd.sh
- fi
- fi
-done
-
-allowed_commands_array=(CHANGE-PASSWORD DETAILS MONITOR POST-DETAILS START STOP UPDATE VALIDATE)
-for allowed_command in "${allowed_commands_array[@]}"; do
- if [ "${allowed_command}" == "${commandname}" ]; then
- check_status.sh
- fi
-done
-
-allowed_commands_array=(DEBUG START INSTALL)
-for allowed_command in "${allowed_commands_array[@]}"; do
- if [ "${allowed_command}" == "${commandname}" ]; then
- check_system_requirements.sh
- fi
-done
diff --git a/lgsm/functions/check_config.sh b/lgsm/functions/check_config.sh
deleted file mode 100644
index 2c65243eb5..0000000000
--- a/lgsm/functions/check_config.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/bash
-# LinuxGSM check_config.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Checks if the server config is missing and warns the user if needed.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-if [ -n "${servercfgfullpath}" ] && [ ! -f "${servercfgfullpath}" ]; then
- fn_print_dots ""
- fn_print_warn_nl "Configuration file missing!"
- echo -e "${servercfgfullpath}"
- fn_script_log_warn "Configuration file missing!"
- fn_script_log_warn "${servercfgfullpath}"
- install_config.sh
-fi
-
-if [ "${shortname}" == "rust" ] && [ -v rconpassword ] && [ -z "${rconpassword}" ]; then
- fn_print_dots ""
- fn_print_fail_nl "RCON password is not set"
- fn_script_log_warn "RCON password is not set"
-elif [ -v rconpassword ] && [ "${rconpassword}" == "CHANGE_ME" ]; then
- fn_print_dots ""
- fn_print_warn_nl "Default RCON Password detected"
- fn_script_log_warn "Default RCON Password detected"
-fi
-
-if [ "${shortname}" == "vh" ] && [ -z "${serverpassword}" ]; then
- fn_print_fail_nl "serverpassword is not set"
- fn_script_log_fatal "serverpassword is not set"
-elif [ "${shortname}" == "vh" ] && [ "${#serverpassword}" -le "4" ]; then
- fn_print_fail_nl "serverpassword is to short (min 5 chars)"
- fn_script_log_fatal "serverpassword is to short (min 5 chars)"
-fi
diff --git a/lgsm/functions/check_deps.sh b/lgsm/functions/check_deps.sh
deleted file mode 100644
index bb8507769c..0000000000
--- a/lgsm/functions/check_deps.sh
+++ /dev/null
@@ -1,363 +0,0 @@
-#!/bin/bash
-# LinuxGSM check_deps.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Checks and installs missing dependencies.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-fn_install_mono_repo() {
- if [ "${autodepinstall}" == "0" ]; then
- fn_print_information_nl "Automatically adding Mono repository."
- fn_script_log_info "Automatically adding Mono repository."
- echo -en ".\r"
- sleep 1
- echo -en "..\r"
- sleep 1
- echo -en "...\r"
- sleep 1
- echo -en " \r"
- if [ "${distroid}" == "ubuntu" ]; then
- if [ "${distroversion}" == "20.04" ]; then
- cmd="sudo apt install gnupg ca-certificates;sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF;echo 'deb https://download.mono-project.com/repo/ubuntu stable-focal main' | sudo tee /etc/apt/sources.list.d/mono-official-stable.list;sudo apt update"
- elif [ "${distroversion}" == "18.04" ]; then
- cmd="sudo apt install gnupg ca-certificates;sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF;echo 'deb https://download.mono-project.com/repo/ubuntu stable-bionic main' | sudo tee /etc/apt/sources.list.d/mono-official-stable.list;sudo apt update"
- elif [ "${distroversion}" == "16.04" ]; then
- cmd="sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF;sudo apt install apt-transport-https ca-certificates;echo 'deb https://download.mono-project.com/repo/ubuntu stable-xenial main' | sudo tee /etc/apt/sources.list.d/mono-official-stable.list;sudo apt update"
- else
- monoautoinstall="1"
- fi
- elif [ "${distroid}" == "debian" ]; then
- if [ "${distroversion}" == "10" ]; then
- cmd="sudo apt install apt-transport-https dirmngr gnupg ca-certificates;sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF;echo 'deb https://download.mono-project.com/repo/debian stable-buster main' | sudo tee /etc/apt/sources.list.d/mono-official-stable.list;sudo apt update"
- elif [ "${distroversion}" == "9" ]; then
- cmd="sudo apt install apt-transport-https dirmngr gnupg ca-certificates;sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF;echo 'deb https://download.mono-project.com/repo/debian stable-stretch main' | sudo tee /etc/apt/sources.list.d/mono-official-stable.list;sudo apt update"
- else
- monoautoinstall="1"
- fi
- elif [ "${distroid}" == "centos" ] || [ "${distroid}" == "almalinux" ] || [ "${distroid}" == "rocky" ]; then
- if [ "${distroversion}" == "8" ]; then
- cmd="sudo rpmkeys --import 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF';su -c 'curl https://download.mono-project.com/repo/centos8-stable.repo | tee /etc/yum.repos.d/mono-centos8-stable.repo'"
- elif [ "${distroversion}" == "7" ]; then
- cmd="sudo rpmkeys --import 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF';su -c 'curl https://download.mono-project.com/repo/centos7-stable.repo | tee /etc/yum.repos.d/mono-centos7-stable.repo'"
- else
- monoautoinstall="1"
- fi
- elif [ "${distroid}" == "fedora" ]; then
- if [ "${distroversion}" -ge "29" ]; then
- cmd="sudo rpm --import 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF';su -c 'curl https://download.mono-project.com/repo/centos8-stable.repo | tee /etc/yum.repos.d/mono-centos8-stable.repo';dnf update"
- else
- cmd="sudo rpm --import 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF';su -c 'curl https://download.mono-project.com/repo/centos7-stable.repo | tee /etc/yum.repos.d/mono-centos7-stable.repo';dnf update"
- fi
- else
- monoautoinstall="1"
- fi
-
- # Run the mono repo install.
- eval "${cmd}"
-
- # Did Mono repo install correctly?
- if [ "${monoautoinstall}" != "1" ]; then
- if [ $? != 0 ]; then
- fn_print_failure_nl "Unable to install Mono repository."
- fn_script_log_fatal "Unable to install Mono repository."
- else
- fn_print_complete_nl "Installing Mono repository completed."
- fn_script_log_pass "Installing Mono repository completed."
- fi
- fi
-
- # Mono can not be auto installed with this distro.
- if [ "${monoautoinstall}" == "1" ]; then
- fn_print_warning_nl "Mono auto install not available for ${distroname}."
- echo -e "Follow instructions on Mono website to install."
- echo -e "https://www.mono-project.com/download/stable/#download-lin"
- fn_script_log_warn "Unable to install Mono repository. Mono auto install not available for ${distroname}."
- fi
-
- else
- fn_print_information_nl "Installing Mono repository."
- fn_print_warning_nl "$(whoami) does not have sudo access."
- echo -e "Follow instructions on Mono website to install."
- echo -e "https://www.mono-project.com/download/stable/#download-lin"
- fn_script_log_warn "Unable to install Mono repository. $(whoami) does not have sudo access."
- fi
-}
-
-fn_deps_email() {
- # Adds postfix to required dependencies if email alert is enabled.
- if [ "${emailalert}" == "on" ]; then
- if [ -f /usr/bin/mailx ]; then
- if [ -d /etc/exim4 ]; then
- array_deps_required+=(exim4)
- elif [ -d /etc/sendmail ]; then
- array_deps_required+=(sendmail)
- elif [ "$(command -v dpkg-query 2> /dev/null)" ]; then
- array_deps_required+=(mailutils postfix)
- elif [ "$(command -v rpm 2> /dev/null)" ]; then
- array_deps_required+=(mailx postfix)
- fi
- else
- if [ "$(command -v dpkg-query 2> /dev/null)" ]; then
- array_deps_required+=(mailutils postfix)
- elif [ "$(command -v rpm 2> /dev/null)" ]; then
- array_deps_required+=(mailx postfix)
- fi
- fi
- fi
-}
-
-fn_install_missing_deps() {
- # If any dependencies are not installed.
- if [ "${#array_deps_missing[*]}" != "0" ]; then
- if [ "${commandname}" == "INSTALL" ]; then
- fn_print_warning_nl "Missing dependencies: ${red}${array_deps_missing[*]}${default}"
- fn_script_log_warn "Missing dependencies: ${array_deps_missing[*]}"
- else
- fn_print_dots "Missing dependencies"
- fn_print_warn "Missing dependencies: ${red}${array_deps_missing[*]}${default}"
- fn_script_log_warn "Missing dependencies: ${array_deps_missing[*]}"
- fi
- fn_sleep_time
-
- # Attempt automatic dependency installation
- if [ "${autoinstall}" == "1" ]; then
- sudo -n true > /dev/null 2>&1
- else
- sudo -v > /dev/null 2>&1
- fi
- autodepinstall="$?"
-
- if [ "${monostatus}" == "1" ]; then
- fn_install_mono_repo
- fi
-
- if [ "${commandname}" == "INSTALL" ]; then
- if [ "${autodepinstall}" == "0" ]; then
- fn_print_information_nl "$(whoami) has sudo access."
- fn_script_log_info "$(whoami) has sudo access."
- else
- fn_print_warning_nl "$(whoami) does not have sudo access. Manually install dependencies."
- fn_script_log_warn "$(whoami) does not have sudo access. Manually install dependencies."
- fi
- fi
-
- # Add sudo dpkg --add-architecture i386 if using i386 packages.
- if [ "$(command -v dpkg-query 2> /dev/null)" ]; then
- if printf '%s\n' "${array_deps_required[@]}" | grep -q -P 'i386'; then
- i386installcommand="sudo dpkg --add-architecture i386; "
- fi
- fi
-
- # If automatic dependency install is available
- if [ "${autodepinstall}" == "0" ]; then
- fn_print_information_nl "Automatically installing missing dependencies."
- fn_script_log_info "Automatically installing missing dependencies."
- echo -en ".\r"
- sleep 1
- echo -en "..\r"
- sleep 1
- echo -en "...\r"
- sleep 1
- echo -en " \r"
- if [ "$(command -v dpkg-query 2> /dev/null)" ]; then
- cmd="echo steamcmd steam/question select \"I AGREE\" | sudo debconf-set-selections; echo steamcmd steam/license note '' | sudo debconf-set-selections; ${i386installcommand}sudo apt-get update; sudo apt-get -y install ${array_deps_missing[*]}"
- eval "${cmd}"
- elif [ "$(command -v dnf 2> /dev/null)" ]; then
- cmd="sudo dnf -y install ${array_deps_missing[*]}"
- eval "${cmd}"
- elif [ "$(command -v yum 2> /dev/null)" ]; then
- cmd="sudo yum -y install ${array_deps_missing[*]}"
- eval "${cmd}"
- fi
- autodepinstall="$?"
-
- # If auto install passes remove steamcmd install failure.
- if [ "${autodepinstall}" == "0" ]; then
- unset steamcmdfail
- fi
- fi
-
- # If automatic dependency install is unavailable.
- if [ "${autodepinstall}" != "0" ]; then
- if [ "$(command -v dpkg-query 2> /dev/null)" ]; then
- echo -e "${i386installcommand}sudo apt update; sudo apt install ${array_deps_missing[*]}"
- elif [ "$(command -v dnf 2> /dev/null)" ]; then
- echo -e "sudo dnf install ${array_deps_missing[*]}"
- elif [ "$(command -v yum 2> /dev/null)" ]; then
- echo -e "sudo yum install ${array_deps_missing[*]}"
- fi
- fi
-
- if [ "${steamcmdfail}" ]; then
- if [ "${commandname}" == "INSTALL" ]; then
- fn_print_failure_nl "Missing dependencies required to run SteamCMD."
- fn_script_log_fatal "Missing dependencies required to run SteamCMD."
- core_exit.sh
- else
- fn_print_error_nl "Missing dependencies required to run SteamCMD."
- fn_script_log_error "Missing dependencies required to run SteamCMD."
- fi
- fi
-
- else
- if [ "${commandname}" == "INSTALL" ]; then
- fn_print_information_nl "Required dependencies already installed."
- fn_script_log_info "Required dependencies already installed."
- fi
- fi
-}
-
-fn_check_loop() {
- # Loop though required depenencies checking if they are installed.
- for deptocheck in ${array_deps_required[*]}; do
- fn_deps_detector
- done
-
- # user will be informed of any missing dependencies.
- fn_install_missing_deps
-}
-
-# Checks if dependency is installed or not.
-fn_deps_detector() {
- ## Check.
- # SteamCMD: Will be removed from required array if no appid is present or non-free repo is not available.
- # This will cause SteamCMD to be installed using tar.
- if [ "${deptocheck}" == "libsdl2-2.0-0:i386" ] && [ -z "${appid}" ]; then
- array_deps_required=("${array_deps_required[@]/libsdl2-2.0-0:i386/}")
- steamcmdstatus=1
- elif [ "${deptocheck}" == "steamcmd" ] && [ -z "${appid}" ]; then
- array_deps_required=("${array_deps_required[@]/steamcmd/}")
- steamcmdstatus=1
- elif [ "${deptocheck}" == "steamcmd" ] && [ "${distroid}" == "debian" ] && ! grep -qE "^deb .*non-free" /etc/apt/sources.list; then
- array_deps_required=("${array_deps_required[@]/steamcmd/}")
- steamcmdstatus=1
- # Java: Added for users using Oracle JRE to bypass check.
- elif [[ ${deptocheck} == "openjdk"* ]] || [[ ${deptocheck} == "java"* ]]; then
- # Is java already installed?
- if [ -n "${javaversion}" ]; then
- # Added for users using Oracle JRE to bypass check.
- depstatus=0
- deptocheck="${javaversion}"
- else
- depstatus=1
- fi
- # Mono: A Mono repo needs to be installed.
- elif [ "${deptocheck}" == "mono-complete" ]; then
- if [ -n "${monoversion}" ] && [ "${monoversion}" -ge "5" ]; then
- # Mono >= 5.0.0 already installed.
- depstatus=0
- monostatus=0
- else
- # Mono not installed or installed Mono < 5.0.0.
- depstatus=1
- monostatus=1
- fi
- elif [ "$(command -v dpkg-query 2> /dev/null)" ]; then
- dpkg-query -W -f='${Status}' "${deptocheck}" 2> /dev/null | grep -q -P '^install ok installed'
- depstatus=$?
- elif [ "$(command -v dnf 2> /dev/null)" ]; then
- dnf list installed "${deptocheck}" > /dev/null 2>&1
- depstatus=$?
- elif [ "$(command -v rpm 2> /dev/null)" ]; then
- rpm -q "${deptocheck}" > /dev/null 2>&1
- depstatus=$?
- fi
-
- # Outcome of Check.
- if [ "${steamcmdstatus}" == "1" ]; then
- # If SteamCMD is not available in repo dont check for it.
- unset steamcmdstatus
- elif [ "${depstatus}" == "0" ]; then
- # If dependency is found.
- missingdep=0
- if [ "${commandname}" == "INSTALL" ]; then
- echo -e "${green}${deptocheck}${default}"
- sleep 0.1
- fi
- elif [ "${depstatus}" != "0" ]; then
- # If dependency is not found.
- missingdep=1
- if [ "${commandname}" == "INSTALL" ]; then
- echo -e "${red}${deptocheck}${default}"
- sleep 0.1
- fi
- # If SteamCMD requirements are not met install will fail.
- if [ -n "${appid}" ]; then
- for steamcmddeptocheck in ${array_deps_required_steamcmd[*]}; do
- if [ "${deptocheck}" != "steamcmd" ] && [ "${deptocheck}" == "${steamcmddeptocheck}" ]; then
- steamcmdfail=1
- fi
- done
- fi
- fi
- unset depstatus
-
- # Missing dependencies are added to array_deps_missing.
- if [ "${missingdep}" == "1" ]; then
- array_deps_missing+=("${deptocheck}")
- fi
-}
-
-if [ "${commandname}" == "INSTALL" ]; then
- if [ "$(whoami)" == "root" ] && [ ! -f /.dockerenv ]; then
- echo -e ""
- echo -e "${lightyellow}Checking Dependencies as root${default}"
- echo -e "================================="
- fn_print_information_nl "Checking any missing dependencies for ${gamename} server only."
- fn_print_information_nl "This will NOT install a ${gamename} server."
- fn_sleep_time
- else
- echo -e ""
- echo -e "${lightyellow}Checking Dependencies${default}"
- echo -e "================================="
- fi
-fi
-
-# Will warn user if their distro is no longer supported by the vendor.
-if [ -n "${distrosupport}" ]; then
- if [ "${distrosupport}" == "unsupported" ]; then
- fn_print_warning_nl "${distroname} is no longer supported by the vendor. Upgrading is recommended."
- fn_script_log_warn "${distroname} is no longer supported by the vendor. Upgrading is recommended."
- fi
-fi
-
-info_distro.sh
-
-if [ ! -f "${tmpdir}/dependency-no-check.tmp" ] && [ ! -f "${datadir}/${distroid}-${distroversioncsv}.csv" ]; then
- # Check that the distro dependency csv file exists.
- fn_check_file_github "lgsm/data" "${distroid}-${distroversioncsv}.csv"
- if [ -n "${checkflag}" ] && [ "${checkflag}" == "0" ]; then
- fn_fetch_file_github "lgsm/data" "${distroid}-${distroversioncsv}.csv" "lgsm/data" "chmodx" "norun" "noforce" "nohash"
- fi
-fi
-
-# If the file successfully downloaded run the dependency check.
-if [ -f "${datadir}/${distroid}-${distroversioncsv}.csv" ]; then
- depall=$(awk -F, '$1=="all" {$1=""; print $0}' "${datadir}/${distroid}-${distroversioncsv}.csv")
- depsteamcmd=$(awk -F, '$1=="steamcmd" {$1=""; print $0}' "${datadir}/${distroid}-${distroversioncsv}.csv")
- depshortname=$(awk -v shortname="${shortname}" -F, '$1==shortname {$1=""; print $0}' "${datadir}/${distroid}-${distroversioncsv}.csv")
-
- # Generate array of missing deps.
- array_deps_missing=()
-
- array_deps_required=("${depall} ${depsteamcmd} ${depshortname}")
- array_deps_required_steamcmd=("${depsteamcmd}")
- fn_deps_email
- # Unique sort dependency array.
- IFS=" " read -r -a array_deps_required <<< "$(echo "${array_deps_required[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' ')"
-
- fn_check_loop
-# Warn the user that dependency checking is unavailable for their distro.
-elif [ "${commandname}" == "INSTALL" ] || [ -n "${checkflag}" ] && [ "${checkflag}" != "0" ]; then
- fn_print_warning_nl "LinuxGSM dependency checking currently unavailable for ${distroname}."
- # Prevent future dependency checking if unavailable for the distro.
- echo "${version}" > "${tmpdir}/dependency-no-check.tmp"
-elif [ -f "${tmpdir}/dependency-no-check.tmp" ]; then
- # Allow LinuxGSM to try a dependency check if LinuxGSM has been recently updated.
- nocheckversion=$(cat "${tmpdir}/dependency-no-check.tmp")
- if [ "${version}" != "${nocheckversion}" ]; then
- rm -f "${tmpdir:?}/dependency-no-check.tmp"
- fi
-fi
diff --git a/lgsm/functions/check_executable.sh b/lgsm/functions/check_executable.sh
deleted file mode 100644
index d1b5c3efd0..0000000000
--- a/lgsm/functions/check_executable.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-# LinuxGSM check_executable.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Checks if server executable exists.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-# Check if executable exists
-execname=$(basename "${executable}")
-if [ ! -f "${executabledir}/${execname}" ]; then
- fn_print_fail_nl "executable was not found"
- echo -e "* ${executabledir}/${execname}"
- if [ -d "${lgsmlogdir}" ]; then
- fn_script_log_fatal "Executable was not found: ${executabledir}/${execname}"
- fi
- unset exitbypass
- core_exit.sh
-fi
diff --git a/lgsm/functions/check_glibc.sh b/lgsm/functions/check_glibc.sh
deleted file mode 100644
index b1a959f5b4..0000000000
--- a/lgsm/functions/check_glibc.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/bash
-# LinuxGSM check_glibc.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Checks if the server has the correct Glibc version.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-info_distro.sh
-
-if [ "${glibc}" == "null" ]; then
- # Glibc is not required.
- :
-elif [ -z "${glibc}" ]; then
- fn_print_dots "glibc"
- fn_print_error_nl "glibc requirement unknown"
- fn_script_log_error "glibc requirement unknown"
-elif [ "$(printf '%s\n'${glibc}'\n' "${glibcversion}" | sort -V | head -n 1)" != "${glibc}" ]; then
- fn_print_dots "glibc"
- fn_print_error_nl "glibc requirements not met"
- fn_script_log_error "glibc requirements not met"
- echo -en "\n"
- echo -e " * glibc required: ${glibc}"
- echo -e " * glibc installed: ${red}${glibcversion}${default}"
- echo -en "\n"
- fn_print_information_nl "distro upgrade is required"
- fn_script_log_info "distro upgrade is required"
-fi
diff --git a/lgsm/functions/check_ip.sh b/lgsm/functions/check_ip.sh
deleted file mode 100644
index 4b8eca5ec9..0000000000
--- a/lgsm/functions/check_ip.sh
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/bin/bash
-# LinuxGSM check_ip.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Automatically identifies the server interface IP.
-# If multiple interfaces are detected the user will need to manually set using ip="0.0.0.0".
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-info_game.sh
-
-ip_commands_array=("/bin/ip" "/usr/sbin/ip" "ip")
-for ip_command in "${ip_commands_array[@]}"; do
- if [ "$(command -v "${ip_command}" 2> /dev/null)" ]; then
- ipcommand="${ip_command}"
- break
- fi
-done
-
-ethtool_commands_array=("/bin/ethtool" "/usr/sbin/ethtool" "ethtool")
-for ethtool_command in "${ethtool_commands_array[@]}"; do
- if [ "$(command -v "${ethtool_command}" 2> /dev/null)" ]; then
- ethtoolcommand="${ethtool_command}"
- break
- fi
-done
-
-mapfile -t current_ips < <(${ipcommand} -o -4 addr | awk '{print $4}' | grep -oe '\([0-9]\{1,3\}\.\?\)\{4\}' | sort -u | grep -v 127.0.0)
-
-function fn_is_valid_ip() {
- local ip="${1}"
- # excluding 0.* ips also
- grep -qEe '^[1-9]+[0-9]*\.[0-9]+\.[0-9]+\.[0-9]+$' <<< "${ip}"
-}
-
-# Check if server has multiple IP addresses
-
-# If the IP variable has been set by user.
-if fn_is_valid_ip "${ip}"; then
- queryips=("${ip}")
- webadminip=("${ip}")
- telnetip=("${ip}")
-# If game config does have an IP set.
-elif fn_is_valid_ip "${configip}"; then
- queryips=("${configip}")
- ip="${configip}"
- webadminip=("${configip}")
- telnetip=("${configip}")
-# If there is only 1 server IP address.
-# Some IP details can automaticly use the one IP
-elif [ "${#current_ips[@]}" == "1" ]; then
- queryips=("127.0.0.1" "${current_ips[@]}")
- ip="0.0.0.0"
- webadminip=("${current_ips[@]}")
- telnetip=("${current_ips[@]}")
-# If no ip is set by the user and server has more than one IP.
-else
- queryips=("127.0.0.1" "${current_ips[@]}")
- ip="0.0.0.0"
- webadminip=("${ip}")
- telnetip=("${ip}")
-fi
diff --git a/lgsm/functions/check_last_update.sh b/lgsm/functions/check_last_update.sh
deleted file mode 100644
index ee86c0ba14..0000000000
--- a/lgsm/functions/check_last_update.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash
-# LinuxGSM check_last_update.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Checks lock file to see when last update happened.
-# Will reboot server if instance not rebooted since update.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-if [ -f "${lockdir}/${selfname}-laststart.lock" ]; then
- laststart=$(cat "${lockdir}/${selfname}-laststart.lock")
-fi
-if [ -f "${lockdir}/lastupdate.lock" ]; then
- lastupdate=$(cat "${lockdir}/lastupdate.lock")
-fi
-
-check_status.sh
-if [ -f "${lockdir}/lastupdate.lock" ] && [ "${status}" != "0" ]; then
- if [ ! -f "${lockdir}/${selfname}-laststart.lock" ] || [ "${laststart}" -lt "${lastupdate}" ]; then
- fn_print_info "${selfname} has not been restarted since last update"
- fn_script_log_info "${selfname} has not been restarted since last update"
- command_restart.sh
- fn_firstcommand_reset
- fi
-fi
diff --git a/lgsm/functions/check_logs.sh b/lgsm/functions/check_logs.sh
deleted file mode 100644
index fa3df92d10..0000000000
--- a/lgsm/functions/check_logs.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash
-# LinuxGSM check_logs.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Checks if log files exist.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-fn_check_logs() {
- fn_print_dots "Checking for log files"
- fn_print_info_nl "Checking for log files: Creating log files"
- checklogs=1
- install_logs.sh
-}
-
-# Create directories for the script and console logs.
-if [ ! -d "${lgsmlogdir}" ] || [ ! -d "${consolelogdir}" ]; then
- fn_check_logs
-fi
-
-# Create gamelogdir.
-# If variable exists gamelogdir exists and log/server does not.
-if [ "${gamelogdir}" ] && [ -d "${gamelogdir}" ] && [ ! -d "${logdir}/server" ]; then
- fn_check_logs
-fi
diff --git a/lgsm/functions/check_permissions.sh b/lgsm/functions/check_permissions.sh
deleted file mode 100644
index 0094456ec3..0000000000
--- a/lgsm/functions/check_permissions.sh
+++ /dev/null
@@ -1,233 +0,0 @@
-#!/bin/bash
-# LinuxGSM check_permissions.sh
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Checks ownership & permissions of scripts, files and directories.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-fn_check_ownership() {
- if [ -f "${rootdir}/${selfname}" ]; then
- if [ "$(find "${rootdir}/${selfname}" -not -user "$(whoami)" | wc -l)" -ne "0" ]; then
- selfownissue=1
- fi
- fi
- if [ -d "${functionsdir}" ]; then
- if [ "$(find "${functionsdir}" -not -user "$(whoami)" | wc -l)" -ne "0" ]; then
- funcownissue=1
- fi
- fi
- if [ -d "${serverfiles}" ]; then
- if [ "$(find "${serverfiles}" -not -user "$(whoami)" | wc -l)" -ne "0" ]; then
- filesownissue=1
- fi
- fi
- if [ "${selfownissue}" == "1" ] || [ "${funcownissue}" == "1" ] || [ "${filesownissue}" == "1" ]; then
- fn_print_fail_nl "Ownership issues found"
- fn_script_log_fatal "Ownership issues found"
- fn_print_information_nl "The current user ($(whoami)) does not have ownership of the following files:"
- fn_script_log_info "The current user ($(whoami)) does not have ownership of the following files:"
- {
- echo -e "User\tGroup\tFile\n"
- if [ "${selfownissue}" == "1" ]; then
- find "${rootdir}/${selfname}" -not -user "$(whoami)" -printf "%u\t%g\t%p\n"
- fi
- if [ "${funcownissue}" == "1" ]; then
- find "${functionsdir}" -not -user "$(whoami)" -printf "%u\t%g\t%p\n"
- fi
- if [ "${filesownissue}" == "1" ]; then
- find "${serverfiles}" -not -user "$(whoami)" -printf "%u\t%g\t%p\n"
- fi
-
- } | column -s $'\t' -t | tee -a "${lgsmlog}"
- echo -e ""
- fn_print_information_nl "please see https://docs.linuxgsm.com/support/faq#fail-starting-game-server-permission-issues-found"
- fn_script_log "For more information, please see https://docs.linuxgsm.com/support/faq#fail-starting-game-server-permission-issues-found"
- if [ "${monitorflag}" == 1 ]; then
- alert="permissions"
- alert.sh
- fi
- core_exit.sh
- fi
-}
-
-fn_check_permissions() {
- if [ -d "${functionsdir}" ]; then
- if [ "$(find "${functionsdir}" -type f -not -executable | wc -l)" -ne "0" ]; then
- fn_print_fail_nl "Permissions issues found"
- fn_script_log_fatal "Permissions issues found"
- fn_print_information_nl "The following files are not executable:"
- fn_script_log_info "The following files are not executable:"
- {
- echo -e "File\n"
- find "${functionsdir}" -type f -not -executable -printf "%p\n"
- } | column -s $'\t' -t | tee -a "${lgsmlog}"
- if [ "${monitorflag}" == 1 ]; then
- alert="permissions"
- alert.sh
- fi
- core_exit.sh
- fi
- fi
-
- # Check rootdir permissions.
- if [ "${rootdir}" ]; then
- # Get permission numbers on directory under the form 775.
- rootdirperm=$(stat -c %a "${rootdir}")
- # Grab the first and second digit for user and group permission.
- userrootdirperm="${rootdirperm:0:1}"
- grouprootdirperm="${rootdirperm:1:1}"
- if [ "${userrootdirperm}" != "7" ] && [ "${grouprootdirperm}" != "7" ]; then
- fn_print_fail_nl "Permissions issues found"
- fn_script_log_fatal "Permissions issues found"
- fn_print_information_nl "The following directory does not have the correct permissions:"
- fn_script_log_info "The following directory does not have the correct permissions:"
- fn_script_log_info "${rootdir}"
- ls -l "${rootdir}"
- if [ "${monitorflag}" == 1 ]; then
- alert="permissions"
- alert.sh
- fi
- core_exit.sh
- fi
- fi
- # Check if executable is executable and attempt to fix it.
- # First get executable name.
- execname=$(basename "${executable}")
- if [ -f "${executabledir}/${execname}" ]; then
- # Get permission numbers on file under the form 775.
- execperm=$(stat -c %a "${executabledir}/${execname}")
- # Grab the first and second digit for user and group permission.
- userexecperm="${execperm:0:1}"
- groupexecperm="${execperm:1:1}"
- # Check for invalid user permission.
- if [ "${userexecperm}" == "0" ] || [ "${userexecperm}" == "2" ] || [ "${userexecperm}" == "4" ] || [ "${userexecperm}" == "6" ]; then
- # If user permission is invalid, then check for invalid group permissions.
- if [ "${groupexecperm}" == "0" ] || [ "${groupexecperm}" == "2" ] || [ "${groupexecperm}" == "4" ] || [ "${groupexecperm}" == "6" ]; then
- # If permission issues are found.
- fn_print_warn_nl "Permissions issue found"
- fn_script_log_warn "Permissions issue found"
- fn_print_information_nl "The following file is not executable:"
- ls -l "${executabledir}/${execname}"
- fn_script_log_info "The following file is not executable:"
- fn_script_log_info "${executabledir}/${execname}"
- fn_print_information_nl "Applying chmod u+x,g+x ${executabledir}/${execname}"
- fn_script_log_info "Applying chmod u+x,g+x ${execperm}"
- # Make the executable executable.
- chmod u+x,g+x "${executabledir}/${execname}"
- # Second check to see if it's been successfully applied.
- # Get permission numbers on file under the form 775.
- execperm=$(stat -c %a "${executabledir}/${execname}")
- # Grab the first and second digit for user and group permission.
- userexecperm="${execperm:0:1}"
- groupexecperm="${execperm:1:1}"
- if [ "${userexecperm}" == "0" ] || [ "${userexecperm}" == "2" ] || [ "${userexecperm}" == "4" ] || [ "${userexecperm}" == "6" ]; then
- if [ "${groupexecperm}" == "0" ] || [ "${groupexecperm}" == "2" ] || [ "${groupexecperm}" == "4" ] || [ "${groupexecperm}" == "6" ]; then
- # If errors are still found.
- fn_print_fail_nl "The following file could not be set executable:"
- ls -l "${executabledir}/${execname}"
- fn_script_log_warn "The following file could not be set executable:"
- fn_script_log_info "${executabledir}/${execname}"
- if [ "${monitorflag}" == "1" ]; then
- alert="permissions"
- alert.sh
- fi
- core_exit.sh
- fi
- fi
- fi
- fi
- fi
-}
-
-## The following fn_sys_perm_* functions checks for permission errors in /sys directory.
-
-# Checks for permission errors in /sys directory.
-fn_sys_perm_errors_detect() {
- # Reset test variables.
- sysdirpermerror="0"
- classdirpermerror="0"
- netdirpermerror="0"
- # Check permissions.
- # /sys, /sys/class and /sys/class/net should be readable & executable.
- if [ ! -r "/sys" ] || [ ! -x "/sys" ]; then
- sysdirpermerror="1"
- fi
- if [ ! -r "/sys/class" ] || [ ! -x "/sys/class" ]; then
- classdirpermerror="1"
- fi
- if [ ! -r "/sys/class/net" ] || [ ! -x "/sys/class/net" ]; then
- netdirpermerror="1"
- fi
-}
-
-# Display a message on how to fix the issue manually.
-fn_sys_perm_fix_manually_msg() {
- echo -e ""
- fn_print_information_nl "This error causes servers to fail starting properly"
- fn_script_log_info "This error causes servers to fail starting properly."
- echo -e " * To fix this issue, run the following command as root:"
- fn_script_log_info "To fix this issue, run the following command as root:"
- echo -e " chmod a+rx /sys /sys/class /sys/class/net"
- fn_script_log "chmod a+rx /sys /sys/class /sys/class/net"
- fn_sleep_time
- if [ "${monitorflag}" == 1 ]; then
- alert="permissions"
- alert.sh
- fi
- core_exit.sh
-}
-
-# Attempt to fix /sys related permission errors if sudo is available, exits otherwise.
-fn_sys_perm_errors_fix() {
- if sudo -n true > /dev/null 2>&1; then
- fn_print_dots "Automatically fixing /sys permissions"
- fn_script_log_info "Automatically fixing /sys permissions."
- if [ "${sysdirpermerror}" == "1" ]; then
- sudo chmod a+rx "/sys"
- fi
- if [ "${classdirpermerror}" == "1" ]; then
- sudo chmod a+rx "/sys/class"
- fi
- if [ "${netdirpermerror}" == "1" ]; then
- sudo chmod a+rx "/sys/class/net"
- fi
- # Run check again to see if it's fixed.
- fn_sys_perm_errors_detect
- if [ "${sysdirpermerror}" == "1" ] || [ "${classdirpermerror}" == "1" ] || [ "${netdirpermerror}" == "1" ]; then
- fn_print_error "Could not fix /sys permissions"
- fn_script_log_error "Could not fix /sys permissions."
- fn_sleep_time
- # Show the user how to fix.
- fn_sys_perm_fix_manually_msg
- else
- fn_print_ok_nl "Automatically fixing /sys permissions"
- fn_script_log_pass "Permissions in /sys fixed"
- fi
- else
- # Show the user how to fix.
- fn_sys_perm_fix_manually_msg
- fi
-}
-
-# Processes to the /sys related permission errors check & fix/info.
-fn_sys_perm_error_process() {
- fn_sys_perm_errors_detect
- # If any error was found.
- if [ "${sysdirpermerror}" == "1" ] || [ "${classdirpermerror}" == "1" ] || [ "${netdirpermerror}" == "1" ]; then
- fn_print_error_nl "Permission error(s) found in /sys"
- fn_script_log_error "Permission error(s) found in /sys"
- # Run the fix
- fn_sys_perm_errors_fix
- fi
-}
-
-## Run permisions checks when not root or docker.
-if [ "$(whoami)" != "root" ] && [ ! -f /.dockerenv ]; then
- fn_check_ownership
- fn_check_permissions
- if [ "${commandname}" == "START" ]; then
- fn_sys_perm_error_process
- fi
-fi
diff --git a/lgsm/functions/check_root.sh b/lgsm/functions/check_root.sh
deleted file mode 100644
index dab0331487..0000000000
--- a/lgsm/functions/check_root.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash
-# LinuxGSM check_root.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Checks if the user tried to run the script as root.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-if [ "$(whoami)" == "root" ] && [ ! -f /.dockerenv ]; then
- if [ "${commandname}" != "INSTALL" ]; then
- fn_print_fail_nl "Do NOT run this script as root!"
- if [ -d "${lgsmlogdir}" ]; then
- fn_script_log_fatal "${selfname} attempted to run as root."
- else
- # Forces exit code is log does not yet exist.
- exitcode=1
- fi
- core_exit.sh
- fi
-fi
diff --git a/lgsm/functions/check_status.sh b/lgsm/functions/check_status.sh
deleted file mode 100644
index 429f7c72dc..0000000000
--- a/lgsm/functions/check_status.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-# LinuxGSM check_status.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Checks the process status of the server. Either online or offline.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-status=$(tmux -L "${sessionname}" list-sessions -F "#{session_name}" 2> /dev/null | grep -Ecx "^${sessionname}")
diff --git a/lgsm/functions/check_steamcmd.sh b/lgsm/functions/check_steamcmd.sh
deleted file mode 100644
index d41e8669f4..0000000000
--- a/lgsm/functions/check_steamcmd.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash
-# LinuxGSM check_steamcmd.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Checks if SteamCMD is installed correctly.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-# init steamcmd functions
-core_steamcmd.sh
-
-fn_check_steamcmd_clear
-fn_check_steamcmd
-if [ "${shortname}" == "ark" ]; then
- fn_check_steamcmd_ark
-fi
-fn_check_steamcmd_dir
-fn_check_steamcmd_dir_legacy
-fn_check_steamcmd_steamapp
-fn_check_steamcmd_user
-fn_check_steamcmd_exec
diff --git a/lgsm/functions/check_system_dir.sh b/lgsm/functions/check_system_dir.sh
deleted file mode 100644
index 0a732d6d13..0000000000
--- a/lgsm/functions/check_system_dir.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash
-# LinuxGSM check_system_dir.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Checks if systemdir/serverfiles is accessible.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-if [ "${commandname}" != "VALIDATE" ]; then
- checkdir="${serverfiles}"
-else
- checkdir="${systemdir}"
-fi
-
-if [ ! -d "${checkdir}" ]; then
- fn_print_fail_nl "Cannot access ${checkdir}: No such directory"
- if [ -d "${lgsmlogdir}" ]; then
- fn_script_log_fatal "Cannot access ${checkdir}: No such directory."
- fi
- core_exit.sh
-fi
diff --git a/lgsm/functions/check_system_requirements.sh b/lgsm/functions/check_system_requirements.sh
deleted file mode 100644
index bfe597135c..0000000000
--- a/lgsm/functions/check_system_requirements.sh
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/bin/bash
-# LinuxGSM check_system_requirements.sh
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Checks RAM requirements.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-info_distro.sh
-
-# RAM requirements in megabytes for each game or engine.
-
-if [ "${shortname}" == "ark" ]; then
- ramrequirementmb="4000"
- ramrequirementgb="4"
-elif [ "${shortname}" == "bt" ]; then
- ramrequirementmb="1000"
- ramrequirementgb="1"
-elif [ "${shortname}" == "mh" ]; then
- ramrequirementmb="4000"
- ramrequirementgb="4"
-elif [ "${shortname}" == "arma3" ]; then
- ramrequirementmb="1000"
- ramrequirementgb="1"
-elif [ "${shortname}" == "rust" ]; then
- ramrequirementmb="4000"
- ramrequirementgb="4"
-elif [ "${shortname}" == "mc" ] || [ "${shortname}" == "pmc" ] || [ "${shortname}" == "wmc" ]; then
- ramrequirementmb="1000"
- ramrequirementgb="1"
-elif [ "${shortname}" == "pstbs" ]; then
- ramrequirementmb="2000"
- ramrequirementgb="2"
-elif [ "${shortname}" == "ns2" ] || [ "${shortname}" == "ns2c" ]; then
- ramrequirementmb="1000"
- ramrequirementgb="1"
-elif [ "${shortname}" == "st" ]; then
- ramrequirementmb="1000"
- ramrequirementgb="1"
-elif [ "${shortname}" == "pvr" ]; then
- ramrequirementmb="2000"
- ramrequirementgb="2"
-fi
-
-# If the game or engine has a minimum RAM Requirement, compare it to system's available RAM.
-if [ "${ramrequirementmb}" ]; then
- if [ "${physmemtotalmb}" -lt "${ramrequirementmb}" ]; then
- fn_print_dots "Check RAM"
- # Warn the user.
- fn_print_warn_nl "Check RAM: ${ramrequirementgb}G required, ${physmemtotal} available"
- echo "* ${gamename} server may fail to run or experience poor performance."
- fn_sleep_time
- fi
-fi
diff --git a/lgsm/functions/check_tmuxception.sh b/lgsm/functions/check_tmuxception.sh
deleted file mode 100644
index 64705a3a8b..0000000000
--- a/lgsm/functions/check_tmuxception.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/bash
-# LinuxGSM check_config.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Checks if run from tmux or screen.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-fn_check_is_in_tmux() {
- if [ "${TMUX}" ]; then
- fn_print_fail_nl "tmuxception error: Sorry Cobb you cannot start a tmux session inside of a tmux session."
- fn_script_log_fatal "Tmuxception error: Attempted to start a tmux session inside of a tmux session."
- fn_print_information_nl "LinuxGSM creates a tmux session when starting the server."
- echo -e "It is not possible to run a tmux session inside another tmux session"
- echo -e "https://docs.linuxgsm.com/requirements/tmux#tmuxception"
- core_exit.sh
- fi
-}
-
-fn_check_is_in_screen() {
- if [ "${STY}" ]; then
- fn_print_fail_nl "tmuxception error: Sorry Cobb you cannot start a tmux session inside of a screen session."
- fn_script_log_fatal "Tmuxception error: Attempted to start a tmux session inside of a screen session."
- fn_print_information_nl "LinuxGSM creates a tmux session when starting the server."
- echo -e "It is not possible to run a tmux session inside screen session"
- echo -e "https://docs.linuxgsm.com/requirements/tmux#tmuxception"
- core_exit.sh
- fi
-}
-
-fn_check_is_in_tmux
-fn_check_is_in_screen
diff --git a/lgsm/functions/check_version.sh b/lgsm/functions/check_version.sh
deleted file mode 100644
index 657e32b54c..0000000000
--- a/lgsm/functions/check_version.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_version.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Will run update-lgsm if gameserver.sh and modules version does not match
-# this will allow gameserver.sh to update - useful for multi instance servers.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-if [ -n "${modulesversion}" ] && [ -n "${version}" ] && [ "${version}" != "${modulesversion}" ]; then
- exitbypass=1
- echo -e ""
- fn_print_error_nl "LinuxGSM version mismatch"
- echo -e ""
- echo -e "* ${selfname}: ${version}"
- echo -e "* modules: ${modulesversion}"
- echo -e ""
- fn_sleep_time
- fn_script_log_error "LinuxGSM Version mismatch: ${selfname}: ${version}: modules: ${modulesversion}"
- command_update_linuxgsm.sh
- fn_firstcommand_reset
-fi
diff --git a/lgsm/functions/command_backup.sh b/lgsm/functions/command_backup.sh
deleted file mode 100644
index d69c57a0fd..0000000000
--- a/lgsm/functions/command_backup.sh
+++ /dev/null
@@ -1,268 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_backup.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Creates a .tar.gz file in the backup directory.
-
-commandname="BACKUP"
-commandaction="Backing up"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_firstcommand_set
-
-check.sh
-
-# Trap to remove lockfile on quit.
-fn_backup_trap() {
- echo -e ""
- echo -en "backup ${backupname}.tar.gz..."
- fn_print_canceled_eol_nl
- fn_script_log_info "Backup ${backupname}.tar.gz: CANCELED"
- rm -f "${backupdir:?}/${backupname}.tar.gz" | tee -a "${lgsmlog}"
- echo -en "backup ${backupname}.tar.gz..."
- fn_print_removed_eol_nl
- fn_script_log_info "Backup ${backupname}.tar.gz: REMOVED"
- # Remove lock file.
- rm -f "${lockdir:?}/backup.lock"
- fn_backup_start_server
- unset exitbypass
- core_exit.sh
-}
-
-# Check if a backup is pending or has been aborted using backup.lock.
-fn_backup_check_lockfile() {
- if [ -f "${lockdir}/backup.lock" ]; then
- fn_print_info_nl "Lock file found: Backup is currently running"
- fn_script_log_error "Lock file found: Backup is currently running: ${lockdir}/backup.lock"
- core_exit.sh
- fi
-}
-
-# Initialisation.
-fn_backup_init() {
- # Backup file name with selfname and current date.
- backupname="${selfname}-$(date '+%Y-%m-%d-%H%M%S')"
-
- info_distro.sh
- fn_print_dots "Backup starting"
- fn_script_log_info "Backup starting"
- fn_print_ok_nl "Backup starting"
- if [ ! -d "${backupdir}" ] || [ "${backupcount}" == "0" ]; then
- fn_print_info_nl "There are no previous backups"
- else
- if [ "${lastbackupdaysago}" == "0" ]; then
- daysago="less than 1 day ago"
- elif [ "${lastbackupdaysago}" == "1" ]; then
- daysago="1 day ago"
- else
- daysago="${lastbackupdaysago} days ago"
- fi
- echo -e "* Previous backup was created ${daysago}, total size ${lastbackupsize}"
- fi
-}
-
-# Check if server is started and whether to stop it.
-fn_backup_stop_server() {
- check_status.sh
- # Server is running but will not be stopped.
- if [ "${stoponbackup}" == "off" ]; then
- fn_print_warn_nl "${selfname} is currently running"
- echo -e "* Although unlikely; creating a backup while ${selfname} is running might corrupt the backup."
- fn_script_log_warn "${selfname} is currently running"
- fn_script_log_warn "Although unlikely; creating a backup while ${selfname} is running might corrupt the backup"
- # Server is running and will be stopped if stoponbackup=on or unset.
- # If server is started
- elif [ "${status}" != "0" ]; then
- fn_print_restart_warning
- startserver="1"
- exitbypass=1
- command_stop.sh
- fn_firstcommand_reset
- fi
-}
-
-# Create required folders.
-fn_backup_dir() {
- # Create backupdir if it doesn't exist.
- if [ ! -d "${backupdir}" ]; then
- mkdir -p "${backupdir}"
- fi
-}
-
-# Migrate Backups from old dir before refactor
-fn_backup_migrate_olddir() {
- # Check if old backup dir is there before the refactor and move the backups
- if [ -d "${rootdir}/backups" ]; then
- if [ "${rootdir}/backups" != "${backupdir}" ]; then
- fn_print_dots "Backup directory is being migrated"
- fn_script_log_info "Backup directory is being migrated"
- fn_script_log_info "${rootdir}/backups > ${backupdir}"
- mv "${rootdir}/backups/"* "${backupdir}" 2> /dev/null
- exitcode=$?
- if [ "${exitcode}" == 0 ]; then
- rmdir "${rootdir}/backups" 2> /dev/null
- exitcode=$?
- fi
- if [ "${exitcode}" != 0 ]; then
- fn_print_error_nl "Backup directory is being migrated"
- fn_script_log_error "Backup directory is being migrated"
- else
-
- fn_print_ok_nl "Backup directory is being migrated"
- fn_script_log_pass "Backup directory is being migrated"
- fi
- fi
- fi
-}
-
-fn_backup_create_lockfile() {
- # Create lockfile.
- date '+%s' > "${lockdir}/backup.lock"
- fn_script_log_info "Lockfile generated"
- fn_script_log_info "${lockdir}/backup.lock"
- # trap to remove lockfile on quit.
- trap fn_backup_trap INT
-}
-
-# Compressing files.
-fn_backup_compression() {
- # Tells how much will be compressed using rootdirduexbackup value from info_distro and prompt for continue.
- fn_print_info "A total of ${rootdirduexbackup} will be compressed."
- fn_script_log_info "A total of ${rootdirduexbackup} will be compressed: ${backupdir}/${backupname}.tar.gz"
- fn_print_dots "Backup (${rootdirduexbackup}) ${backupname}.tar.gz, in progress..."
- fn_script_log_info "backup ${rootdirduexbackup} ${backupname}.tar.gz, in progress"
- excludedir=$(fn_backup_relpath)
-
- # Check that excludedir is a valid path.
- if [ ! -d "${excludedir}" ]; then
- fn_print_fail_nl "Problem identifying the previous backup directory for exclusion."
- fn_script_log_fatal "Problem identifying the previous backup directory for exclusion"
- core_exit.sh
- fi
-
- tar -czf "${backupdir}/${backupname}.tar.gz" -C "${rootdir}" --exclude "${excludedir}" --exclude "${lockdir}/backup.lock" ./.
- local exitcode=$?
- if [ "${exitcode}" != 0 ]; then
- fn_print_fail_eol
- fn_script_log_fatal "Backup in progress: FAIL"
- echo -e "${extractcmd}" | tee -a "${lgsmlog}"
- fn_print_fail_nl "Starting backup"
- fn_script_log_fatal "Starting backup"
- else
- fn_print_ok_eol
- fn_print_ok_nl "Completed: ${backupname}.tar.gz, total size $(du -sh "${backupdir}/${backupname}.tar.gz" | awk '{print $1}')"
- fn_script_log_pass "Backup created: ${backupname}.tar.gz, total size $(du -sh "${backupdir}/${backupname}.tar.gz" | awk '{print $1}')"
- fi
- # Remove lock file
- rm -f "${lockdir:?}/backup.lock"
-}
-
-# Clear old backups according to maxbackups and maxbackupdays variables.
-fn_backup_prune() {
- # Clear if backup variables are set.
- if [ "${maxbackups}" ] && [ -n "${maxbackupdays}" ]; then
- # How many backups there are.
- info_distro.sh
- # How many backups exceed maxbackups.
- backupquotadiff=$((backupcount - maxbackups))
- # How many backups exceed maxbackupdays.
- backupsoudatedcount=$(find "${backupdir}"/ -type f -name "*.tar.gz" -mtime +"${maxbackupdays}" | wc -l)
- # If anything can be cleared.
- if [ "${backupquotadiff}" -gt "0" ] || [ "${backupsoudatedcount}" -gt "0" ]; then
- fn_print_dots "Pruning"
- fn_script_log_info "Backup pruning activated"
- fn_print_ok_nl "Pruning"
- # If maxbackups greater or equal to backupsoutdatedcount, then it is over maxbackupdays.
- if [ "${backupquotadiff}" -ge "${backupsoudatedcount}" ]; then
- # Display how many backups will be cleared.
- echo -e "* Pruning: ${backupquotadiff} backup(s) has exceeded the ${maxbackups} backups limit"
- fn_script_log_info "Pruning: ${backupquotadiff} backup(s) has exceeded the ${maxbackups} backups limit"
- fn_sleep_time
- fn_print_dots "Pruning: Clearing ${backupquotadiff} backup(s)"
- fn_script_log_info "Pruning: Clearing ${backupquotadiff} backup(s)"
- # Clear backups over quota.
- find "${backupdir}"/ -type f -name "*.tar.gz" -printf '%T@ %p\n' | sort -rn | tail -${backupquotadiff} | cut -f2- -d" " | xargs rm
- fn_print_ok_nl "Pruning: Clearing ${backupquotadiff} backup(s)"
- fn_script_log_pass "Pruning: Cleared ${backupquotadiff} backup(s)"
- # If maxbackupdays is used over maxbackups.
- elif [ "${backupquotadiff}" -lt "${backupsoudatedcount}" ]; then
- # Display how many backups will be cleared.
- echo -e "* Pruning: ${backupsoudatedcount} backup(s) are older than ${maxbackupdays} days."
- fn_script_log_info "Pruning: ${backupsoudatedcount} backup(s) older than ${maxbackupdays} days."
- fn_sleep_time
- fn_print_dots "Pruning: Clearing ${backupquotadiff} backup(s)."
- fn_script_log_info "Pruning: Clearing ${backupquotadiff} backup(s)"
- # Clear backups over quota
- find "${backupdir}"/ -type f -mtime +"${maxbackupdays}" -exec rm -f {} \;
- fn_print_ok_nl "Pruning: Clearing ${backupquotadiff} backup(s)"
- fn_script_log_pass "Pruning: Cleared ${backupquotadiff} backup(s)"
- fi
- fi
- fi
-}
-
-fn_backup_relpath() {
- # Written by CedarLUG as a "realpath --relative-to" alternative in bash.
- # Populate an array of tokens initialized from the rootdir components.
- declare -a rdirtoks=($(readlink -f "${rootdir}" | sed "s/\// /g"))
- if [ ${#rdirtoks[@]} -eq 0 ]; then
- fn_print_fail_nl "Problem assessing rootdir during relative path assessment"
- fn_script_log_fatal "Problem assessing rootdir during relative path assessment: ${rootdir}"
- core_exit.sh
- fi
-
- # Populate an array of tokens initialized from the backupdir components.
- declare -a bdirtoks=($(readlink -f "${backupdir}" | sed "s/\// /g"))
- if [ ${#bdirtoks[@]} -eq 0 ]; then
- fn_print_fail_nl "Problem assessing backupdir during relative path assessment"
- fn_script_log_fatal "Problem assessing backupdir during relative path assessment: ${rootdir}"
- core_exit.sh
- fi
-
- # Compare the leading entries of each array. These common elements will be clipped off.
- # for the relative path output.
- for ((base = 0; base < ${#rdirtoks[@]}; base++)); do
- [[ "${rdirtoks[$base]}" != "${bdirtoks[$base]}" ]] && break
- done
-
- # Next, climb out of the remaining rootdir location with updir references.
- for ((x = base; x < ${#rdirtoks[@]}; x++)); do
- echo -n "../"
- done
-
- # Climb down the remaining components of the backupdir location.
- for ((x = base; x < $((${#bdirtoks[@]} - 1)); x++)); do
- echo -n "${bdirtoks[$x]}/"
- done
-
- # In the event there were no directories left in the backupdir above to
- # traverse down, just add a newline. Otherwise at this point, there is
- # one remaining directory component in the backupdir to navigate.
- if (("$base" < "${#bdirtoks[@]}")); then
- echo -e "${bdirtoks[$((${#bdirtoks[@]} - 1))]}"
- else
- echo
- fi
-}
-
-# Start the server if it was stopped for the backup.
-fn_backup_start_server() {
- if [ -n "${startserver}" ]; then
- exitbypass=1
- command_start.sh
- fn_firstcommand_reset
- fi
-}
-
-# Run functions.
-fn_backup_check_lockfile
-fn_backup_init
-fn_backup_stop_server
-fn_backup_dir
-fn_backup_migrate_olddir
-fn_backup_create_lockfile
-fn_backup_compression
-fn_backup_prune
-fn_backup_start_server
-
-core_exit.sh
diff --git a/lgsm/functions/command_check_update.sh b/lgsm/functions/command_check_update.sh
deleted file mode 100644
index b2647e2a16..0000000000
--- a/lgsm/functions/command_check_update.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_check_update.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Handles updating of servers.
-
-commandname="CHECK-UPDATE"
-commandaction="Check for Update"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_firstcommand_set
-
-fn_print_dots ""
-check.sh
-core_logs.sh
-
-if [ "${shortname}" == "ts3" ]; then
- update_ts3.sh
-elif [ "${shortname}" == "mc" ]; then
- update_minecraft.sh
-elif [ "${shortname}" == "mcb" ]; then
- update_minecraft_bedrock.sh
-elif [ "${shortname}" == "pmc" ] || [ "${shortname}" == "vpmc" ] || [ "${shortname}" == "wmc" ]; then
- update_papermc.sh
-elif [ "${shortname}" == "fctr" ]; then
- update_factorio.sh
-elif [ "${shortname}" == "mta" ]; then
- update_mta.sh
-elif [ "${shortname}" == "jk2" ]; then
- update_jediknight2.sh
-elif [ "${shortname}" == "vints" ]; then
- update_vintagestory.sh
-elif [ "${shortname}" == "ut99" ]; then
- update_ut99.sh
-else
- update_steamcmd.sh
-fi
-
-core_exit.sh
diff --git a/lgsm/functions/command_console.sh b/lgsm/functions/command_console.sh
deleted file mode 100644
index 4f09776b8d..0000000000
--- a/lgsm/functions/command_console.sh
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_console.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Gives access to the server tmux console.
-
-commandname="CONSOLE"
-commandaction="Access console"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_firstcommand_set
-
-check.sh
-fn_print_header
-
-if [ "${consoleverbose}" == "yes" ]; then
- echo -e "* Verbose output: ${lightgreen}yes${default}"
-elif [ "${consoleverbose}" == "no" ]; then
- echo -e "* Verbose output: ${red}no${default}"
-else
- echo -e "* Verbose output: ${red}unknown${default}"
-fi
-
-if [ "${consoleinteract}" == "yes" ]; then
- echo -e "* Interactive output: ${lightgreen}yes${default}"
-elif [ "${consoleinteract}" == "no" ]; then
- echo -e "* Interactive output: ${red}no${default}"
-else
- echo -e "* Interactive output: ${red}unknown${default}"
-fi
-echo ""
-fn_print_information_nl "Press \"CTRL+b\" then \"d\" to exit console."
-fn_print_warning_nl "Do NOT press CTRL+c to exit."
-echo -e "* https://docs.linuxgsm.com/commands/console"
-echo -e ""
-if ! fn_prompt_yn "Continue?" Y; then
- exitcode=0
- core_exit.sh
-fi
-fn_print_dots "Accessing console"
-check_status.sh
-if [ "${status}" != "0" ]; then
- fn_print_ok_nl "Accessing console"
- fn_script_log_pass "Console accessed"
- tmux -L "${sessionname}" attach-session -t "${sessionname}"
- fn_print_ok_nl "Closing console"
- fn_script_log_pass "Console closed"
-else
- fn_print_error_nl "Server not running"
- fn_script_log_error "Failed to access: Server not running"
- if fn_prompt_yn "Do you want to start the server?" Y; then
- exitbypass=1
- command_start.sh
- fn_firstcommand_reset
- fi
-fi
-
-core_exit.sh
diff --git a/lgsm/functions/command_debug.sh b/lgsm/functions/command_debug.sh
deleted file mode 100644
index c6422be651..0000000000
--- a/lgsm/functions/command_debug.sh
+++ /dev/null
@@ -1,142 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_debug.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Runs the server without tmux and directly from the terminal.
-
-commandname="DEBUG"
-commandaction="Debuging"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_firstcommand_set
-
-# Trap to remove lockfile on quit.
-fn_lockfile_trap() {
- # Remove lockfile.
- rm -f "${lockdir:?}/${selfname}.lock"
- # resets terminal. Servers can sometimes mess up the terminal on exit.
- reset
- fn_print_dots "Stopping debug"
- fn_print_ok_nl "Stopping debug"
- fn_script_log_pass "Stopping debug"
- # remove trap.
- trap - INT
- core_exit.sh
-}
-
-check.sh
-fix.sh
-info_distro.sh
-info_game.sh
-fn_print_header
-{
- echo -e "${lightblue}Distro:\t\t${default}${distroname}"
- echo -e "${lightblue}Architecture:\t\t${default}${arch}"
- echo -e "${lightblue}Kernel:\t\t${default}${kernel}"
- echo -e "${lightblue}Hostname:\t\t${default}${HOSTNAME}"
- echo -e "${lightblue}tmux:\t\t${default}${tmuxv}"
- echo -e "${lightblue}Avg Load:\t\t${default}${load}"
- echo -e "${lightblue}Free Memory:\t\t${default}${physmemfree}"
- echo -e "${lightblue}Free Disk:\t\t${default}${availspace}"
-} | column -s $'\t' -t
-
-# glibc required.
-if [ -n "${glibc}" ]; then
- if [ "${glibc}" == "null" ]; then
- # Glibc is not required.
- :
- elif [ -z "${glibc}" ]; then
- echo -e "${lightblue}glibc required:\t${red}UNKNOWN${default}"
- elif [ "$(printf '%s\n'${glibc}'\n' ${glibcversion} | sort -V | head -n 1)" != "${glibc}" ]; then
- echo -e "${lightblue}glibc required:\t${red}${glibc} ${default}(${red}distro glibc ${glibcversion} too old${default})"
- else
- echo -e "${lightblue}glibc required:\t${green}${glibc}${default}"
- fi
-fi
-
-# Server IP.
-echo -e "${lightblue}Game Server IP:\t${default}${ip}:${port}"
-
-# External server IP.
-if [ "${extip}" ]; then
- if [ "${ip}" != "${extip}" ]; then
- echo -e "${lightblue}Internet IP:\t${default}${extip}:${port}"
- fi
-fi
-
-# Server password.
-if [ "${serverpassword}" ]; then
- echo -e "${lightblue}Server password:\t${default}${serverpassword}"
-fi
-
-fn_reload_startparameters
-echo -e "${lightblue}Start parameters:${default}"
-if [ "${engine}" == "source" ] || [ "${engine}" == "goldsrc" ]; then
- echo -e "${executable} ${startparameters} -debug"
-elif [ "${engine}" == "quake" ]; then
- echo -e "${executable} ${startparameters} -condebug"
-else
- echo -e "${preexecutable} ${executable} ${startparameters}"
-fi
-echo -e ""
-echo -e "Use debug for identifying server issues only!"
-echo -e "Press CTRL+c to drop out of debug mode."
-fn_print_warning_nl "If ${selfname} is already running it will be stopped."
-echo -e ""
-if ! fn_prompt_yn "Continue?" Y; then
- exitcode=0
- core_exit.sh
-fi
-
-fn_print_info_nl "Stopping any running servers"
-fn_script_log_info "Stopping any running servers"
-exitbypass=1
-command_stop.sh
-fn_firstcommand_reset
-unset exitbypass
-fn_print_dots "Starting debug"
-fn_script_log_info "Starting debug"
-fn_print_ok_nl "Starting debug"
-
-# Create lockfile.
-date '+%s' > "${lockdir}/${selfname}.lock"
-echo "${version}" >> "${lockdir}/${selfname}.lock"
-echo "${port}" >> "${lockdir}/${selfname}.lock"
-fn_script_log_info "Lockfile generated"
-fn_script_log_info "${lockdir}/${selfname}.lock"
-
-if [ "${shortname}" == "av" ]; then
- cd "${systemdir}" || exit
-else
- cd "${executabledir}" || exit
-fi
-
-# Note: do not add double quotes to ${executable} ${startparameters}.
-if [ "${engine}" == "source" ] || [ "${engine}" == "goldsrc" ]; then
- eval "${executable} ${startparameters} -debug"
-elif [ "${engine}" == "quake" ]; then
- eval "${executable} ${startparameters} -condebug"
-else
- # shellcheck disable=SC2086
- eval "${preexecutable} ${executable} ${startparameters}"
-fi
-
-if [ $? -ne 0 ]; then
- fn_print_error_nl "Server has stopped: exit code: $?"
- fn_script_log_error "Server has stopped: exit code: $?"
- fn_print_error_nl "Press ENTER to exit debug mode"
- read -r
-else
- fn_print_ok_nl "Server has stopped"
- fn_script_log_pass "Server has stopped"
- fn_print_ok_nl "Press ENTER to exit debug mode"
- read -r
-fi
-
-fn_lockfile_trap
-
-fn_print_dots "Stopping debug"
-fn_print_ok_nl "Stopping debug"
-fn_script_log_info "Stopping debug"
-
-core_exit.sh
diff --git a/lgsm/functions/command_details.sh b/lgsm/functions/command_details.sh
deleted file mode 100644
index 08d9f031b4..0000000000
--- a/lgsm/functions/command_details.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_details.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Displays server information.
-
-commandname="DETAILS"
-commandaction="Viewing details"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_firstcommand_set
-
-# Run checks and gathers details to display.
-check.sh
-info_distro.sh
-info_game.sh
-info_messages.sh
-if [ "${querymode}" == "2" ] || [ "${querymode}" == "3" ]; then
- for queryip in "${queryips[@]}"; do
- query_gamedig.sh
- if [ "${querystatus}" == "0" ]; then
- break
- fi
- done
-fi
-fn_info_message_distro
-fn_info_message_server_resource
-fn_info_message_gameserver_resource
-fn_info_message_gameserver
-fn_info_message_script
-fn_info_message_backup
-# Some game servers do not have parms.
-if [ "${shortname}" != "jc2" ] && [ "${shortname}" != "dst" ] && [ "${shortname}" != "pz" ] && [ "${engine}" != "renderware" ]; then
- fn_info_message_commandlineparms
-fi
-fn_info_message_ports_edit
-fn_info_message_ports
-fn_info_message_select_engine
-fn_info_message_statusbottom
-
-core_exit.sh
diff --git a/lgsm/functions/command_dev_clear_functions.sh b/lgsm/functions/command_dev_clear_functions.sh
deleted file mode 100644
index 87c77515d3..0000000000
--- a/lgsm/functions/command_dev_clear_functions.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_dev_clear_functions.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Deletes the contents of the functions dir.
-
-commandname="DEV-CLEAR-MODULES"
-commandaction="Clearing modules"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_firstcommand_set
-
-echo -e "================================="
-echo -e "Clear Functions"
-echo -e "================================="
-echo -e ""
-if fn_prompt_yn "Do you want to delete all functions?" Y; then
- rm -rfv "${functionsdir:?}/"*
- rm -rfv "${configdirdefault:?}/"*
- fn_script_log_info "Cleared modules directory"
- fn_script_log_info "Cleared default config directory"
-fi
-
-core_exit.sh
diff --git a/lgsm/functions/command_dev_debug.sh b/lgsm/functions/command_dev_debug.sh
deleted file mode 100644
index 19f16d58e2..0000000000
--- a/lgsm/functions/command_dev_debug.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_dev_debug.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Dev only: Enables debugging log to be saved to dev-debug.log.
-
-commandname="DEV-DEBUG"
-commandaction="Developer debug"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_firstcommand_reset
-
-if [ -f "${rootdir}/.dev-debug" ]; then
- rm -f "${rootdir:?}/.dev-debug"
- fn_print_ok_nl "Disabled dev-debug"
- fn_script_log_info "Disabled dev-debug"
-else
- date '+%s' > "${rootdir}/.dev-debug"
- fn_print_ok_nl "Enabled dev-debug"
- fn_script_log_info "Enabled dev-debug"
-fi
-
-core_exit.sh
diff --git a/lgsm/functions/command_dev_detect_deps.sh b/lgsm/functions/command_dev_detect_deps.sh
deleted file mode 100644
index d16b744189..0000000000
--- a/lgsm/functions/command_dev_detect_deps.sh
+++ /dev/null
@@ -1,231 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_dev_detect_deps.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Detects dependencies the server binary requires.
-
-commandname="DEV-DETECT-DEPS"
-commandaction="Developer detect deps"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_firstcommand_set
-
-echo -e "================================="
-echo -e "Dependencies Checker"
-echo -e "================================="
-echo -e "Checking directory: "
-echo -e "${serverfiles}"
-if [ "$(command -v eu-readelf 2> /dev/null)" ]; then
- readelf=eu-readelf
-elif [ "$(command -v readelf 2> /dev/null)" ]; then
- readelf=readelf
-else
- echo -e "readelf/eu-readelf not installed"
-fi
-files=$(find "${serverfiles}" | wc -l)
-find "${serverfiles}" -type f -print0 \
- | while IFS= read -r -d $'\0' line; do
- if [ "${readelf}" == "eu-readelf" ]; then
- ${readelf} -d "${line}" 2> /dev/null | grep NEEDED | awk '{ print $4 }' | sed 's/\[//g;s/\]//g' >> "${tmpdir}/.depdetect_readelf"
- else
- ${readelf} -d "${line}" 2> /dev/null | grep NEEDED | awk '{ print $5 }' | sed 's/\[//g;s/\]//g' >> "${tmpdir}/.depdetect_readelf"
- fi
- echo -n "${i} / ${files}" $'\r'
- ((i++))
- done
-
-sort "${tmpdir}/.depdetect_readelf" | uniq > "${tmpdir}/.depdetect_readelf_uniq"
-
-touch "${tmpdir}/.depdetect_centos_list"
-touch "${tmpdir}/.depdetect_ubuntu_list"
-touch "${tmpdir}/.depdetect_debian_list"
-
-while read -r lib; do
- echo -e "${lib}"
- libs_array=(libm.so.6 libc.so.6 libtcmalloc_minimal.so.4 libpthread.so.0 libdl.so.2 libnsl.so.1 libgcc_s.so.1 librt.so.1 ld-linux.so.2 libdbus-glib-1.so.2 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libnm-glib.so.4 libnm-util.so.2)
- for lib_file in "${libs_array[@]}"; do
- if [ "${lib}" == "${lib_file}" ]; then
- echo -e "glibc.i686" >> "${tmpdir}/.depdetect_centos_list"
- echo -e "lib32gcc1" >> "${tmpdir}/.depdetect_ubuntu_list"
- echo -e "lib32gcc1" >> "${tmpdir}/.depdetect_debian_list"
- libdetected=1
- fi
- done
-
- libs_array=(libawt.so libjava.so libjli.so libjvm.so libnet.so libnio.so libverify.so)
- for lib_file in "${libs_array[@]}"; do
- if [ "${lib}" == "${lib_file}" ]; then
- echo -e "java-1.8.0-openjdk" >> "${tmpdir}/.depdetect_centos_list"
- echo -e "default-jre" >> "${tmpdir}/.depdetect_ubuntu_list"
- echo -e "default-jre" >> "${tmpdir}/.depdetect_debian_list"
- libdetected=1
- fi
- done
-
- libs_array=(libtier0.so libtier0_srv.so libvstdlib_srv.so Core.so libvstdlib.so libtier0_s.so Editor.so Engine.so liblua.so libsteam_api.so ld-linux-x86-64.so.2 libPhysX3_x86.so libPhysX3Common_x86.so libPhysX3Cooking_x86.so)
- for lib_file in "${libs_array[@]}"; do
- # Known shared libs what dont requires dependencies.
- if [ "${lib}" == "${lib_file}" ]; then
- libdetected=1
- fi
- done
-
- if [ "${lib}" == "libstdc++.so.6" ]; then
- echo -e "libstdc++.i686" >> "${tmpdir}/.depdetect_centos_list"
- echo -e "libstdc++6:i386" >> "${tmpdir}/.depdetect_ubuntu_list"
- echo -e "libstdc++6:i386" >> "${tmpdir}/.depdetect_debian_list"
- libdetected=1
- elif [ "${lib}" == "libstdc++.so.5" ]; then
- echo -e "compat-libstdc++-33.i686" >> "${tmpdir}/.depdetect_centos_list"
- echo -e "libstdc++5:i386" >> "${tmpdir}/.depdetect_ubuntu_list"
- echo -e "libstdc++5:i386" >> "${tmpdir}/.depdetect_debian_list"
- libdetected=1
- elif [ "${lib}" == "libcurl-gnutls.so.4" ]; then
- echo -e "libcurl.i686" >> "${tmpdir}/.depdetect_centos_list"
- echo -e "libcurl4-gnutls-dev:i386" >> "${tmpdir}/.depdetect_ubuntu_list"
- echo -e "libcurl4-gnutls-dev:i386" >> "${tmpdir}/.depdetect_debian_list"
- libdetected=1
- elif [ "${lib}" == "libspeex.so.1" ] || [ "${lib}" == "libspeexdsp.so.1" ]; then
- echo -e "speex.i686" >> "${tmpdir}/.depdetect_centos_list"
- echo -e "speex:i386" >> "${tmpdir}/.depdetect_ubuntu_list"
- echo -e "speex:i386" >> "${tmpdir}/.depdetect_debian_list"
- libdetected=1
- elif [ "${lib}" == "./libSDL-1.2.so.0" ] || [ "${lib}" == "libSDL-1.2.so.0" ]; then
- echo -e "SDL.i686" >> "${tmpdir}/.depdetect_centos_list"
- echo -e "libsdl1.2debian" >> "${tmpdir}/.depdetect_ubuntu_list"
- echo -e "libsdl1.2debian" >> "${tmpdir}/.depdetect_debian_list"
- libdetected=1
- elif [ "${lib}" == "libtbb.so.2" ]; then
- echo -e "tbb.i686" >> "${tmpdir}/.depdetect_centos_list"
- echo -e "libtbb2" >> "${tmpdir}/.depdetect_ubuntu_list"
- echo -e "libtbb2" >> "${tmpdir}/.depdetect_debian_list"
- libdetected=1
-
- elif [ "${lib}" == "libXrandr.so.2" ]; then
- echo -e "libXrandr" >> "${tmpdir}/.depdetect_centos_list"
- echo -e "libxrandr2" >> "${tmpdir}/.depdetect_ubuntu_list"
- echo -e "libxrandr2" >> "${tmpdir}/.depdetect_debian_list"
- libdetected=1
- elif [ "${lib}" == "libXext.so.6" ]; then
- echo -e "libXext" >> "${tmpdir}/.depdetect_centos_list"
- echo -e "libxext6" >> "${tmpdir}/.depdetect_ubuntu_list"
- echo -e "libxext6" >> "${tmpdir}/.depdetect_debian_list"
- libdetected=1
- elif [ "${lib}" == "libXtst.so.6" ]; then
- echo -e "libXtst" >> "${tmpdir}/.depdetect_centos_list"
- echo -e "libxtst6" >> "${tmpdir}/.depdetect_ubuntu_list"
- echo -e "libxtst6" >> "${tmpdir}/.depdetect_debian_list"
- libdetected=1
- elif [ "${lib}" == "libpulse.so.0" ]; then
- echo -e "pulseaudio-libs" >> "${tmpdir}/.depdetect_centos_list"
- echo -e "libpulse0" >> "${tmpdir}/.depdetect_ubuntu_list"
- echo -e "libpulse0" >> "${tmpdir}/.depdetect_debian_list"
- libdetected=1
- elif [ "${lib}" == "libopenal.so.1" ]; then
- echo -e "" >> "${tmpdir}/.depdetect_centos_list"
- echo -e "libopenal1" >> "${tmpdir}/.depdetect_ubuntu_list"
- echo -e "libopenal1" >> "${tmpdir}/.depdetect_debian_list"
- libdetected=1
- elif [ "${lib}" == "libgconf-2.so.4" ]; then
- echo -e "GConf2" >> "${tmpdir}/.depdetect_centos_list"
- echo -e "libgconf2-4" >> "${tmpdir}/.depdetect_ubuntu_list"
- echo -e "libgconf2-4" >> "${tmpdir}/.depdetect_debian_list"
- libdetected=1
- elif [ "${lib}" == "libz.so.1" ]; then
- echo -e "zlib" >> "${tmpdir}/.depdetect_centos_list"
- echo -e "zlib1g" >> "${tmpdir}/.depdetect_ubuntu_list"
- echo -e "zlib1g" >> "${tmpdir}/.depdetect_debian_list"
- libdetected=1
- elif [ "${lib}" == "libatk-1.0.so.0" ]; then
- echo -e "atk" >> "${tmpdir}/.depdetect_centos_list"
- echo -e "libatk1.0-0" >> "${tmpdir}/.depdetect_ubuntu_list"
- echo -e "libatk1.0-0" >> "${tmpdir}/.depdetect_debian_list"
- libdetected=1
- elif [ "${lib}" == "libcairo.so.2" ]; then
- echo -e "cairo" >> "${tmpdir}/.depdetect_centos_list"
- echo -e "libcairo2" >> "${tmpdir}/.depdetect_ubuntu_list"
- echo -e "libcairo2" >> "${tmpdir}/.depdetect_debian_list"
- libdetected=1
- elif [ "${lib}" == "libfontconfig.so.1" ]; then
- echo -e "fontconfig" >> "${tmpdir}/.depdetect_centos_list"
- echo -e "libfontconfig1" >> "${tmpdir}/.depdetect_ubuntu_list"
- echo -e "libfontconfig1" >> "${tmpdir}/.depdetect_debian_list"
- libdetected=1
- elif [ "${lib}" == "libfreetype.so.6" ]; then
- echo -e "freetype" >> "${tmpdir}/.depdetect_centos_list"
- echo -e "libfreetype6" >> "${tmpdir}/.depdetect_ubuntu_list"
- echo -e "libfreetype6" >> "${tmpdir}/.depdetect_debian_list"
- libdetected=1
- elif [ "${lib}" == "libc++.so.1" ]; then
- echo -e "libcxx" >> "${tmpdir}/.depdetect_centos_list"
- echo -e "libc++1" >> "${tmpdir}/.depdetect_ubuntu_list"
- echo -e "libc++1" >> "${tmpdir}/.depdetect_debian_list"
- libdetected=1
- fi
-
- if [ "${libdetected}" != "1" ]; then
- unknownlib=1
- echo -e "${lib}" >> "${tmpdir}/.depdetect_unknown"
- fi
- unset libdetected
-done < "${tmpdir}/.depdetect_readelf_uniq"
-
-sort "${tmpdir}/.depdetect_centos_list" | uniq >> "${tmpdir}/.depdetect_centos_list_uniq"
-sort "${tmpdir}/.depdetect_ubuntu_list" | uniq >> "${tmpdir}/.depdetect_ubuntu_list_uniq"
-sort "${tmpdir}/.depdetect_debian_list" | uniq >> "${tmpdir}/.depdetect_debian_list_uniq"
-if [ "${unknownlib}" == "1" ]; then
- sort "${tmpdir}/.depdetect_unknown" | uniq >> "${tmpdir}/.depdetect_unknown_uniq"
-fi
-
-awk -vORS='' '{ print $1,$2 }' "${tmpdir}/.depdetect_centos_list_uniq" > "${tmpdir}/.depdetect_centos_line"
-awk -vORS='' '{ print $1,$2 }' "${tmpdir}/.depdetect_ubuntu_list_uniq" > "${tmpdir}/.depdetect_ubuntu_line"
-awk -vORS='' '{ print $1,$2 }' "${tmpdir}/.depdetect_debian_list_uniq" > "${tmpdir}/.depdetect_debian_line"
-echo -e ""
-echo -e ""
-echo -e "Required Dependencies"
-echo -e "================================="
-echo -e "${executable}"
-echo -e ""
-echo -e "CentOS"
-echo -e "================================="
-cat "${tmpdir}/.depdetect_centos_line"
-echo -e ""
-echo -e ""
-echo -e "Ubuntu"
-echo -e "================================="
-cat "${tmpdir}/.depdetect_ubuntu_line"
-echo -e ""
-echo -e ""
-echo -e "Debian"
-echo -e "================================="
-cat "${tmpdir}/.depdetect_debian_line"
-echo -e ""
-if [ "${unknownlib}" == "1" ]; then
- echo -e ""
- echo -e "Unknown shared Library"
- echo -e "================================="
- cat "${tmpdir}/.depdetect_unknown"
-fi
-echo -e ""
-echo -e "Required Librarys"
-echo -e "================================="
-sort "${tmpdir}/.depdetect_readelf" | uniq
-echo -en "\n"
-rm -f "${tmpdir:?}/.depdetect_centos_line"
-rm -f "${tmpdir:?}/.depdetect_centos_list"
-rm -f "${tmpdir:?}/.depdetect_centos_list_uniq"
-
-rm -f "${tmpdir:?}/.depdetect_debian_line"
-rm -f "${tmpdir:?}/.depdetect_debian_list"
-rm -f "${tmpdir:?}/.depdetect_debian_list_uniq"
-
-rm -f "${tmpdir:?}/.depdetect_ubuntu_line"
-rm -f "${tmpdir:?}/.depdetect_ubuntu_list"
-rm -f "${tmpdir:?}/.depdetect_ubuntu_list_uniq"
-
-rm -f "${tmpdir:?}/.depdetect_readelf"
-rm -f "${tmpdir:?}/.depdetect_readelf_uniq"
-rm -f "${tmpdir:?}/.depdetect_unknown"
-rm -f "${tmpdir:?}/.depdetect_unknown_uniq"
-
-core_exit.sh
diff --git a/lgsm/functions/command_dev_detect_glibc.sh b/lgsm/functions/command_dev_detect_glibc.sh
deleted file mode 100644
index 73280e55d3..0000000000
--- a/lgsm/functions/command_dev_detect_glibc.sh
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_dev_detect_glibc.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Automatically detects the version of GLIBC that is required.
-# Can check a file or directory recursively.
-
-commandname="DEV-DETECT-GLIBC"
-commandaction="Developer detect glibc"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_firstcommand_set
-
-echo -e "================================="
-echo -e "glibc Requirements Checker"
-echo -e "================================="
-
-if [ ! "$(command -v objdump)" ]; then
- fn_print_failure_nl "objdump is missing"
- fn_script_log_fatal "objdump is missing"
- core_exit.sh
-fi
-
-if [ -z "${serverfiles}" ]; then
- dir=$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")
-fi
-
-if [ -d "${serverfiles}" ]; then
- echo -e "Checking directory: "
- echo -e "${serverfiles}"
-elif [ -f "${serverfiles}" ]; then
- echo -e "Checking file: "
- echo -e "${serverfiles}"
-fi
-echo -e ""
-
-glibc_check_dir_array=(steamcmddir serverfiles)
-for glibc_check_var in "${glibc_check_dir_array[@]}"; do
- if [ "${glibc_check_var}" == "serverfiles" ]; then
- glibc_check_dir="${serverfiles}"
- glibc_check_name="${gamename}"
- elif [ "${glibc_check_var}" == "steamcmddir" ]; then
- glibc_check_dir="${steamcmddir}"
- glibc_check_name="SteamCMD"
- fi
-
- if [ -d "${glibc_check_dir}" ]; then
- glibc_check_files=$(find "${glibc_check_dir}" | wc -l)
- find "${glibc_check_dir}" -type f -print0 \
- | while IFS= read -r -d $'\0' line; do
- glibcversion=$(objdump -T "${line}" 2> /dev/null | grep -oP "GLIBC[^ ]+" | grep -v GLIBCXX | sort | uniq | sort -r --version-sort | head -n 1)
- if [ "${glibcversion}" ]; then
- echo -e "${glibcversion}: ${line}" >> "${tmpdir}/detect_glibc_files_${glibc_check_var}.tmp"
- fi
- objdump -T "${line}" 2> /dev/null | grep -oP "GLIBC[^ ]+" >> "${tmpdir}/detect_glibc_${glibc_check_var}.tmp"
- echo -n "${i} / ${glibc_check_files}" $'\r'
- ((i++))
- done
- echo -e ""
- echo -e ""
- echo -e "${glibc_check_name} glibc Requirements"
- echo -e "================================="
- if [ -f "${tmpdir}/detect_glibc_files_${glibc_check_var}.tmp" ]; then
- echo -e "Required glibc"
- cat "${tmpdir}/detect_glibc_${glibc_check_var}.tmp" | sort | uniq | sort -r --version-sort | head -1 | tee -a "${tmpdir}/detect_glibc_highest.tmp"
- echo -e ""
- echo -e "Files requiring GLIBC"
- echo -e "Highest verion required: filename"
- cat "${tmpdir}/detect_glibc_files_${glibc_check_var}.tmp"
- echo -e ""
- echo -e "All required GLIBC versions"
- cat "${tmpdir}/detect_glibc_${glibc_check_var}.tmp" | sort | uniq | sort -r --version-sort
- rm -f "${tmpdir:?}/detect_glibc_${glibc_check_var}.tmp"
- rm -f "${tmpdir:?}/detect_glibc_files_${glibc_check_var}.tmp"
- else
- fn_print_information_nl "glibc is not required"
- fi
- else
- fn_print_information_nl "${glibc_check_name} is not installed"
- fi
-done
-echo -e ""
-echo -e "Final glibc Requirement"
-echo -e "================================="
-if [ -f "${tmpdir}/detect_glibc_highest.tmp" ]; then
- cat "${tmpdir}/detect_glibc_highest.tmp" | sort | uniq | sort -r --version-sort | head -1
- rm -f "${tmpdir:?}/detect_glibc_highest.tmp"
-else
- fn_print_information_nl "glibc is not required"
-fi
-
-core_exit.sh
diff --git a/lgsm/functions/command_dev_detect_ldd.sh b/lgsm/functions/command_dev_detect_ldd.sh
deleted file mode 100644
index 43630d4e93..0000000000
--- a/lgsm/functions/command_dev_detect_ldd.sh
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_dev_detect_ldd.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Automatically detects required deps using ldd.
-# Can check a file or directory recursively.
-
-commandname="DEV-DETECT-LDD"
-commandaction="Developer detect ldd"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_firstcommand_set
-
-echo -e "================================="
-echo -e "Shared Object dependencies Checker"
-echo -e "================================="
-
-if [ -z "${serverfiles}" ]; then
- dir=$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")
-fi
-
-if [ -d "${serverfiles}" ]; then
- echo -e "Checking directory: "
- echo -e "${serverfiles}"
-elif [ -f "${serverfiles}" ]; then
- echo -e "Checking file: "
- echo -e "${serverfiles}"
-fi
-echo -e ""
-touch "${tmpdir}/detect_ldd.tmp"
-touch "${tmpdir}/detect_ldd_not_found.tmp"
-
-files=$(find "${serverfiles}" | wc -l)
-find "${serverfiles}" -type f -print0 \
- | while IFS= read -r -d $'\0' line; do
- if ldd "${line}" 2> /dev/null | grep -v "not a dynamic executable"; then
- echo -e "${line}" >> "${tmpdir}/detect_ldd.tmp"
- ldd "${line}" 2> /dev/null | grep -v "not a dynamic executable" >> "${tmpdir}/detect_ldd.tmp"
- if ldd "${line}" 2> /dev/null | grep -v "not a dynamic executable" | grep "not found"; then
- echo -e "${line}" >> "${tmpdir}/detect_ldd_not_found.tmp"
- ldd "${line}" 2> /dev/null | grep -v "not a dynamic executable" | grep "not found" >> "${tmpdir}/detect_ldd_not_found.tmp"
- fi
- fi
- echo -n "$i / $files" $'\r'
- ((i++))
- done
-echo -e ""
-echo -e ""
-echo -e "All"
-echo -e "================================="
-cat "${tmpdir}/detect_ldd.tmp"
-
-echo -e ""
-echo -e "Not Found"
-echo -e "================================="
-cat "${tmpdir}/detect_ldd_not_found.tmp"
-
-rm -f "${tmpdir:?}/detect_ldd.tmp"
-rm -f "${tmpdir:?}/detect_ldd_not_found.tmp"
-
-core_exit.sh
diff --git a/lgsm/functions/command_dev_query_raw.sh b/lgsm/functions/command_dev_query_raw.sh
deleted file mode 100644
index 26884b2598..0000000000
--- a/lgsm/functions/command_dev_query_raw.sh
+++ /dev/null
@@ -1,280 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_dev_query_raw.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Raw gamedig output of the server.
-
-commandname="DEV-QUERY-RAW"
-commandaction="Developer query raw"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_firstcommand_set
-
-check.sh
-info_game.sh
-info_distro.sh
-info_messages.sh
-
-echo -e ""
-echo -e "${lightgreen}Query IP Addresses${default}"
-echo -e "=================================================================="
-echo -e ""
-for queryip in "${queryips[@]}"; do
- echo -e "${queryip}"
-done
-echo -e ""
-echo -e "${lightgreen}Game Server Ports${default}"
-echo -e "=================================================================="
-{
- echo -e "${lightblue}Port Name \tPort Number \tStatus \tTCP \tUDP${default}"
- if [ -v port ]; then
- echo -e "Game: \t${port} \t$(ss -tupl | grep -c ${port}) \t$(ss -tupl | grep ${port} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${port} | grep udp | awk '{ print $2 }')"
- else
- echo -e "Game:"
- fi
- if [ "${shortname}" == "rw" ]; then
- if [ -v port2 ]; then
- echo -e "Game+1: \t${port2} \t$(ss -tupl | grep -c ${port}) \t$(ss -tupl | grep ${port2} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${port2} | grep udp | awk '{ print $2 }')"
- else
- echo -e "Game+1:"
- fi
-
- if [ -v port3 ]; then
- echo -e "Game+2: \t${port3} \t$(ss -tupl | grep -c ${port}) \t$(ss -tupl | grep ${port3} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${port3} | grep udp | awk '{ print $2 }')"
- else
- echo -e "Game+2:"
- fi
-
- if [ -v port4 ]; then
- echo -e "Game+3: \t${port4} \t$(ss -tupl | grep -c ${port}) \t$(ss -tupl | grep ${port4} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${port4} | grep udp | awk '{ print $2 }')"
- else
- echo -e "Game+3:"
- fi
- fi
-
- if [ -v port401 ]; then
- echo -e "Game+400: \t${port401} \t$(ss -tupl | grep -c ${port401}) \t$(ss -tupl | grep ${port401} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${port401} | grep udp | awk '{ print $2 }')"
- else
- echo -e "Game+400:"
- fi
-
- if [ -v portipv6 ]; then
- echo -e "Game ipv6: \t${portipv6} \t$(ss -tupl | grep -c ${portipv6}) \t$(ss -tupl | grep ${portipv6} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${portipv6} | grep udp | awk '{ print $2 }')"
- else
- echo -e "Game ipv6:"
- fi
-
- if [ -v queryport ]; then
- echo -e "Query: \t${queryport} \t$(ss -tupl | grep -c ${queryport}) \t$(ss -tupl | grep ${queryport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${queryport} | grep udp | awk '{ print $2 }')"
- else
- echo -e "Query:"
- fi
-
- if [ -v httpport ]; then
- echo -e "HTTP: \t${httpport} \t$(ss -tupl | grep -c ${httpport}) \t$(ss -tupl | grep ${httpport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${httpport} | grep udp | awk '{ print $2 }')"
- else
- echo -e "HTTP:"
- fi
-
- if [ -v httpqueryport ]; then
- echo -e "HTTP Query: \t${httpqueryport} \t$(ss -tupl | grep -c ${httpqueryport}) \t$(ss -tupl | grep ${httpqueryport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${httpqueryport} | grep udp | awk '{ print $2 }')"
- else
- echo -e "HTTP Query:"
- fi
-
- if [ -v webadminport ]; then
- echo -e "Web Admin: \t${webadminport} \t$(ss -tupl | grep -c ${webadminport}) \t$(ss -tupl | grep ${webadminport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${webadminport} | grep udp | awk '{ print $2 }')"
- else
- echo -e "Web Admin:"
- fi
-
- if [ -v clientport ]; then
- echo -e "Client: \t${clientport} \t$(ss -tupl | grep -c ${clientport}) \t$(ss -tupl | grep ${clientport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${clientport} | grep udp | awk '{ print $2 }')"
- else
- echo -e "Client:"
- fi
-
- if [ -v rconport ]; then
- echo -e "RCON: \t${rconport} \t$(ss -tupl | grep -c ${rconport}) \t$(ss -tupl | grep ${rconport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${rconport} | grep udp | awk '{ print $2 }')"
- else
- echo -e "RCON:"
- fi
-
- if [ -v rawport ]; then
- echo -e "RAW UDP Socket: \t${rawport} \t$(ss -tupl | grep -c ${rawport}) \t$(ss -tupl | grep ${rawport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${rawport} | grep udp | awk '{ print $2 }')"
- else
- echo -e "RAW UDP Socket:"
- fi
-
- if [ -v masterport ]; then
- echo -e "Game: Master: \t${masterport} \t$(ss -tupl | grep -c ${masterport}) \t$(ss -tupl | grep ${masterport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${masterport} | grep udp | awk '{ print $2 }')"
- else
- echo -e "Game: Master:"
- fi
-
- if [ -v steamport ]; then
- echo -e "Steam: \t${steamport} \t$(ss -tupl | grep -c ${steamport}) \t$(ss -tupl | grep ${steamport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${steamport} | grep udp | awk '{ print $2 }')"
- else
- echo -e "Steam:"
- fi
-
- if [ -v steamauthport ]; then
- echo -e "Steam: Auth: \t${steamauthport} \t$(ss -tupl | grep -c ${steamauthport}) \t$(ss -tupl | grep ${steamauthport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${steamauthport} | grep udp | awk '{ print $2 }')"
- else
- echo -e "Steam: Auth:"
- fi
-
- if [ -v steammasterport ]; then
- echo -e "Steam: Master: \t${steammasterport} \t$(ss -tupl | grep -c ${steammasterport}) \t$(ss -tupl | grep ${steammasterport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${steammasterport} | grep udp | awk '{ print $2 }')"
- else
- echo -e "Steam: Master:"
- fi
-
- if [ -v steamqueryport ]; then
- echo -e "Steam: Query: \t${steamqueryport} \t$(ss -tupl | grep -c ${steamqueryport}) \t$(ss -tupl | grep ${steamqueryport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${steamqueryport} | grep udp | awk '{ print $2 }')"
- else
- echo -e "Steam: Query:"
- fi
- if [ -v beaconport ]; then
- echo -e "Beacon: \t${beaconport} \t$(ss -tupl | grep -c ${beaconport}) \t$(ss -tupl | grep ${beaconport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${beaconport} | grep udp | awk '{ print $2 }')"
- else
- echo -e "Beacon:"
- fi
-
- if [ -v appport ]; then
- echo -e "App: \t${appport} \t$(ss -tupl | grep -c ${appport}) \t$(ss -tupl | grep ${appport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${appport} | grep udp | awk '{ print $2 }')"
- else
- echo -e "App:"
- fi
-
- if [ -v telnetport ]; then
- echo -e "Telnet: \t${telnetport} \t$(ss -tupl | grep -c ${telnetport}) \t$(ss -tupl | grep ${telnetport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${telnetport} | grep udp | awk '{ print $2 }')"
- else
- echo -e "Telnet:"
- fi
-
- if [ -v sourcetvport ]; then
- echo -e "SourceTV: \t${sourcetvport} \t$(ss -tupl | grep -c ${sourcetvport}) \t$(ss -tupl | grep ${sourcetvport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${sourcetvport} | grep udp | awk '{ print $2 }')"
- else
- echo -e "SourceTV:"
- fi
-
- if [ -v fileport ]; then
- echo -e "File: \t${fileport} \t$(ss -tupl | grep -c ${fileport}) \t$(ss -tupl | grep ${fileport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${fileport} | grep udp | awk '{ print $2 }')"
- else
- echo -e "File:"
- fi
-
- if [ -v udplinkport ]; then
- echo -e "UDP Link: \t${udplinkport} \t$(ss -tupl | grep -c ${udplinkport}) \t$(ss -tupl | grep ${udplinkport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${udplinkport} | grep udp | awk '{ print $2 }')"
- else
- echo -e "UDP Link:"
- fi
-
- if [ -v voiceport ]; then
- echo -e "Voice: \t${voiceport} \t$(ss -tupl | grep -c ${voiceport}) \t$(ss -tupl | grep ${voiceport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${voiceport} | grep udp | awk '{ print $2 }')"
- else
- echo -e "Voice:"
- fi
-
- if [ -v voiceunusedport ]; then
- echo -e "Voice (Unused): \t${voiceunusedport} \t$(ss -tupl | grep -c ${voiceunusedport}) \t$(ss -tupl | grep ${voiceunusedport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${voiceunusedport} | grep udp | awk '{ print $2 }')"
- else
- echo -e "Voice (Unused):"
- fi
-
- if [ -v battleeyeport ]; then
- echo -e "BattleEye: \t${battleeyeport} \t$(ss -tupl | grep -c ${battleeyeport}) \t$(ss -tupl | grep ${battleeyeport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${battleeyeport} | grep udp | awk '{ print $2 }')"
- else
- echo -e "BattleEye:"
- fi
-
- if [ -v statsport ]; then
- echo -e "Stats: \t${battleeyeport} \t$(ss -tupl | grep -c ${statsport}) \t$(ss -tupl | grep ${statsport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${statsport} | grep udp | awk '{ print $2 }')"
- else
- echo -e "Stats:"
- fi
-
-} | column -s $'\t' -t
-echo -e ""
-echo -e "${lightgreen}SS Output${default}"
-echo -e "================================="
-fn_info_message_ports
-echo -e ""
-echo -e "${lightgreen}Query Port - Raw Output${default}"
-echo -e "=================================================================="
-echo -e ""
-echo -e "PORT: ${port}"
-echo -e "QUERY PORT: ${queryport}"
-echo -e ""
-echo -e "${lightgreen}Gamedig Raw Output${default}"
-echo -e "================================="
-echo -e ""
-if [ ! "$(command -v gamedig 2> /dev/null)" ]; then
- fn_print_failure_nl "gamedig not installed"
-fi
-if [ ! "$(command -v jq 2> /dev/null)" ]; then
- fn_print_failure_nl "jq not installed"
-fi
-for queryip in "${queryips[@]}"; do
- query_gamedig.sh
- echo -e "${gamedigcmd}"
- echo""
- echo "${gamedigraw}" | jq
-done
-echo -e ""
-echo -e "${lightgreen}gsquery Raw Output${default}"
-echo -e "================================="
-echo -e ""
-for queryip in "${queryips[@]}"; do
- echo -e "./query_gsquery.py -a \"${queryip}\" -p \"${queryport}\" -e \"${querytype}\""
- echo -e ""
- if [ ! -f "${functionsdir}/query_gsquery.py" ]; then
- fn_fetch_file_github "lgsm/functions" "query_gsquery.py" "${functionsdir}" "chmodx" "norun" "noforce" "nohash"
- fi
- "${functionsdir}"/query_gsquery.py -a "${queryip}" -p "${queryport}" -e "${querytype}"
-done
-echo -e ""
-echo -e "${lightgreen}TCP Raw Output${default}"
-echo -e "================================="
-echo -e ""
-for queryip in "${queryips[@]}"; do
- echo -e "bash -c 'exec 3<> /dev/tcp/'${queryip}'/'${queryport}''"
- echo -e ""
- timeout 3 bash -c 'exec 3<> /dev/tcp/'${queryip}'/'${queryport}''
- querystatus="$?"
- echo -e ""
- if [ "${querystatus}" == "0" ]; then
- echo -e "TCP query PASS"
- else
- echo -e "TCP query FAIL"
- fi
-done
-echo -e ""
-echo -e "${lightgreen}Game Port - Raw Output${default}"
-echo -e "=================================================================="
-echo -e ""
-echo -e "${lightgreen}TCP Raw Output${default}"
-echo -e "================================="
-echo -e ""
-for queryip in "${queryips[@]}"; do
- echo -e "bash -c 'exec 3<> /dev/tcp/'${queryip}'/'${port}''"
- echo -e ""
- timeout 3 bash -c 'exec 3<> /dev/tcp/'${queryip}'/'${port}''
- querystatus="$?"
- echo -e ""
- if [ "${querystatus}" == "0" ]; then
- echo -e "TCP query PASS"
- else
- echo -e "TCP query FAIL"
- fi
-done
-echo -e ""
-echo -e "${lightgreen}Steam Master Server Response${default}"
-echo -e "=================================================================="
-echo -e ""
-echo -e "Response: ${displaymasterserver}"
-echo -e ""
-
-exitcode=0
-core_exit.sh
diff --git a/lgsm/functions/command_donate.sh b/lgsm/functions/command_donate.sh
deleted file mode 100644
index f00a4d7025..0000000000
--- a/lgsm/functions/command_donate.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_donate.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Shows ways to donate.
-
-commandname="DONATE"
-commandaction="Donate"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_firstcommand_set
-
-fn_print_ascii_logo
-echo -e "${lightyellow}Support LinuxGSM${default}"
-echo -e "================================="
-echo -e ""
-echo -e "Been using LinuxGSM?"
-echo -e "Consider donating to support development."
-echo -e ""
-echo -e "* ${lightblue}Patreon:${default} https://linuxgsm.com/patreon"
-echo -e "* ${lightblue}GitHub:${default} https://github.com/sponsors/dgibbs64"
-echo -e "* ${lightblue}PayPal:${default} https://linuxgsm.com/paypal"
-echo -e ""
-echo -e "LinuxGSM est. 2012"
-
-core_exit.sh
diff --git a/lgsm/functions/command_fastdl.sh b/lgsm/functions/command_fastdl.sh
deleted file mode 100644
index 78abd650a1..0000000000
--- a/lgsm/functions/command_fastdl.sh
+++ /dev/null
@@ -1,442 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_fastdl.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Creates a FastDL directory.
-
-commandname="FASTDL"
-commandaction="Fastdl"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_firstcommand_set
-
-check.sh
-
-# Directories.
-if [ -z "${webdir}" ]; then
- webdir="${rootdir}/public_html"
-fi
-fastdldir="${webdir}/fastdl"
-addonsdir="${systemdir}/addons"
-# Server lua autorun dir, used to autorun lua on client connect to the server.
-luasvautorundir="${systemdir}/lua/autorun/server"
-luafastdlfile="lgsm_cl_force_fastdl.lua"
-luafastdlfullpath="${luasvautorundir}/${luafastdlfile}"
-
-# Check if bzip2 is installed.
-if [ ! "$(command -v bzip2 2> /dev/null)" ]; then
- fn_print_fail "bzip2 is not installed"
- fn_script_log_fatal "bzip2 is not installed"
- core_exit.sh
-fi
-
-# Header
-fn_print_header
-echo -e "More info: https://docs.linuxgsm.com/commands/fastdl"
-echo -e ""
-
-# Prompts user for FastDL creation settings.
-echo -e "${commandaction} setup"
-echo -e "================================="
-
-# Prompt for clearing old files if directory was already here.
-if [ -d "${fastdldir}" ]; then
- fn_print_warning_nl "FastDL directory already exists."
- echo -e "${fastdldir}"
- echo -e ""
- if fn_prompt_yn "Overwrite existing directory?" Y; then
- fn_script_log_info "Overwrite existing directory: YES"
- else
- core_exit.sh
- fi
-fi
-
-# Garry's Mod Specific.
-if [ "${shortname}" == "gmod" ]; then
- # Prompt for download enforcer, which is using a .lua addfile resource generator.
- if fn_prompt_yn "Force clients to download files?" Y; then
- luaresource="on"
- fn_script_log_info "Force clients to download files: YES"
- else
- luaresource="off"
- fn_script_log_info "Force clients to download filesr: NO"
- fi
-fi
-
-# Clears any fastdl directory content.
-fn_clear_old_fastdl() {
- # Clearing old FastDL.
- if [ -d "${fastdldir}" ]; then
- echo -en "clearing existing FastDL directory ${fastdldir}..."
- rm -rf "${fastdldir:?}"
- exitcode=$?
- if [ "${exitcode}" != 0 ]; then
- fn_print_fail_eol_nl
- fn_script_log_fatal "Clearing existing FastDL directory ${fastdldir}"
- core_exit.sh
- else
- fn_print_ok_eol_nl
- fn_script_log_pass "Clearing existing FastDL directory ${fastdldir}"
- fi
- fi
-}
-
-fn_fastdl_dirs() {
- # Check and create directories.
- if [ ! -d "${webdir}" ]; then
- echo -en "creating web directory ${webdir}..."
- mkdir -p "${webdir}"
- exitcode=$?
- if [ "${exitcode}" != 0 ]; then
- fn_print_fail_eol_nl
- fn_script_log_fatal "Creating web directory ${webdir}"
- core_exit.sh
- else
- fn_print_ok_eol_nl
- fn_script_log_pass "Creating web directory ${webdir}"
- fi
- fi
- if [ ! -d "${fastdldir}" ]; then
- echo -en "creating fastdl directory ${fastdldir}..."
- mkdir -p "${fastdldir}"
- exitcode=$?
- if [ "${exitcode}" != 0 ]; then
- fn_print_fail_eol_nl
- fn_script_log_fatal "Creating fastdl directory ${fastdldir}"
- core_exit.sh
- else
- fn_print_ok_eol_nl
- fn_script_log_pass "Creating fastdl directory ${fastdldir}"
- fi
- fi
-}
-
-# Using this gist https://gist.github.com/agunnerson-ibm/efca449565a3e7356906
-fn_human_readable_file_size() {
- local abbrevs=(
- $((1 << 60)):ZB
- $((1 << 50)):EB
- $((1 << 40)):TB
- $((1 << 30)):GB
- $((1 << 20)):MB
- $((1 << 10)):KB
- $((1)):bytes
- )
-
- local bytes="${1}"
- local precision="${2}"
-
- if [[ "${bytes}" == "1" ]]; then
- echo -e "1 byte"
- else
- for item in "${abbrevs[@]}"; do
- local factor="${item%:*}"
- local abbrev="${item#*:}"
- if [[ "${bytes}" -ge "${factor}" ]]; then
- size=$(bc -l <<< "${bytes} / ${factor}")
- printf "%.*f %s\n" "${precision}" "${size}" "${abbrev}"
- break
- fi
- done
- fi
-}
-
-# Provides info about the fastdl directory content and prompts for confirmation.
-fn_fastdl_preview() {
- # Remove any file list.
- if [ -f "${tmpdir}/fastdl_files_to_compress.txt" ]; then
- rm -f "${tmpdir:?}/fastdl_files_to_compress.txt"
- fi
- echo -e "analysing required files"
- fn_script_log_info "Analysing required files"
- # Garry's Mod
- if [ "${shortname}" == "gmod" ]; then
- cd "${systemdir}" || exit
- allowed_extentions_array=("*.ain" "*.bsp" "*.mdl" "*.mp3" "*.ogg" "*.otf" "*.pcf" "*.phy" "*.png" "*.svg" "*.vtf" "*.vmt" "*.vtx" "*.vvd" "*.ttf" "*.wav")
- for allowed_extention in "${allowed_extentions_array[@]}"; do
- fileswc=0
- tput sc
- while read -r ext; do
- ((fileswc++))
- tput rc
- tput el
- echo -e "gathering ${allowed_extention} : ${fileswc}..."
- echo -e "${ext}" >> "${tmpdir}/fastdl_files_to_compress.txt"
- done < <(find . -type f -iname "${allowed_extention}")
- if [ ${fileswc} != 0 ]; then
- fn_print_ok_eol_nl
- else
- fn_print_info_eol_nl
- fi
- done
- # Source engine
- else
- fastdl_directories_array=("maps" "materials" "models" "particles" "sound" "resources")
- for directory in "${fastdl_directories_array[@]}"; do
- if [ -d "${systemdir}/${directory}" ]; then
- if [ "${directory}" == "maps" ]; then
- local allowed_extentions_array=("*.bsp" "*.ain" "*.nav" "*.jpg" "*.txt")
- elif [ "${directory}" == "materials" ]; then
- local allowed_extentions_array=("*.vtf" "*.vmt" "*.vbf" "*.png" "*.svg")
- elif [ "${directory}" == "models" ]; then
- local allowed_extentions_array=("*.vtx" "*.vvd" "*.mdl" "*.phy" "*.jpg" "*.png" "*.vmt" "*.vtf")
- elif [ "${directory}" == "particles" ]; then
- local allowed_extentions_array=("*.pcf")
- elif [ "${directory}" == "sound" ]; then
- local allowed_extentions_array=("*.wav" "*.mp3" "*.ogg")
- fi
- for allowed_extention in "${allowed_extentions_array[@]}"; do
- fileswc=0
- tput sc
- while read -r ext; do
- ((fileswc++))
- tput rc
- tput el
- echo -e "gathering ${directory} ${allowed_extention} : ${fileswc}..."
- echo -e "${ext}" >> "${tmpdir}/fastdl_files_to_compress.txt"
- done < <(find "${systemdir}/${directory}" -type f -iname "${allowed_extention}")
- tput rc
- tput el
- echo -e "gathering ${directory} ${allowed_extention} : ${fileswc}..."
- if [ ${fileswc} != 0 ]; then
- fn_print_ok_eol_nl
- else
- fn_print_info_eol_nl
- fi
- done
- fi
- done
- fi
- if [ -f "${tmpdir}/fastdl_files_to_compress.txt" ]; then
- echo -e "calculating total file size..."
- fn_sleep_time
- totalfiles=$(wc -l < "${tmpdir}/fastdl_files_to_compress.txt")
- # Calculates total file size.
- while read -r dufile; do
- filesize=$(stat -c %s "${dufile}")
- filesizetotal=$((filesizetotal + filesize))
- exitcode=$?
- if [ "${exitcode}" != 0 ]; then
- fn_print_fail_eol_nl
- fn_script_log_fatal "Calculating total file size."
- core_exit.sh
- fi
- done < "${tmpdir}/fastdl_files_to_compress.txt"
- else
- fn_print_fail_eol_nl "generating file list"
- fn_script_log_fatal "Generating file list."
- core_exit.sh
- fi
- echo -e "about to compress ${totalfiles} files, total size $(fn_human_readable_file_size ${filesizetotal} 0)"
- fn_script_log_info "${totalfiles} files, total size $(fn_human_readable_file_size ${filesizetotal} 0)"
- rm -f "${tmpdir:?}/fastdl_files_to_compress.txt"
- if ! fn_prompt_yn "Continue?" Y; then
- fn_script_log "User exited"
- core_exit.sh
- fi
-}
-
-# Builds Garry's Mod fastdl directory content.
-fn_fastdl_gmod() {
- cd "${systemdir}" || exit
- for allowed_extention in "${allowed_extentions_array[@]}"; do
- fileswc=0
- tput sc
- while read -r fastdlfile; do
- ((fileswc++))
- tput rc
- tput el
- echo -e "copying ${allowed_extention} : ${fileswc}..."
- cp --parents "${fastdlfile}" "${fastdldir}"
- exitcode=$?
- if [ "${exitcode}" != 0 ]; then
- fn_print_fail_eol_nl
- fn_script_log_fatal "Copying ${fastdlfile} > ${fastdldir}"
- core_exit.sh
- else
- fn_script_log_pass "Copying ${fastdlfile} > ${fastdldir}"
- fi
- done < <(find . -type f -iname "${allowed_extention}")
- if [ ${fileswc} != 0 ]; then
- fn_print_ok_eol_nl
- fi
- done
- # Correct addons directory structure for FastDL.
- if [ -d "${fastdldir}/addons" ]; then
- echo -en "updating addons file structure..."
- cp -Rf "${fastdldir}"/addons/*/* "${fastdldir}"
- exitcode=$?
- if [ "${exitcode}" != 0 ]; then
- fn_print_fail_eol_nl
- fn_script_log_fatal "Updating addons file structure"
- core_exit.sh
- else
- fn_print_ok_eol_nl
- fn_script_log_pass "Updating addons file structure"
- fi
- # Clear addons directory in fastdl.
- echo -en "clearing addons dir from fastdl dir..."
- fn_sleep_time
- rm -rf "${fastdldir:?}/addons"
- exitcode=$?
- if [ "${exitcode}" != 0 ]; then
- fn_print_fail_eol_nl
- fn_script_log_fatal "Clearing addons dir from fastdl dir"
- core_exit.sh
- else
- fn_print_ok_eol_nl
- fn_script_log_pass "Clearing addons dir from fastdl dir"
- fi
- fi
- # Correct content that may be into a lua directory by mistake like some darkrpmodification addons.
- if [ -d "${fastdldir}/lua" ]; then
- echo -en "correcting DarkRP files..."
- fn_sleep_time
- cp -Rf "${fastdldir}/lua/"* "${fastdldir}"
- exitcode=$?
- if [ "${exitcode}" != 0 ]; then
- fn_print_fail_eol_nl
- fn_script_log_fatal "Correcting DarkRP files"
- core_exit.sh
- else
- fn_print_ok_eol_nl
- fn_script_log_pass "Correcting DarkRP files"
- fi
- fi
- if [ -f "${tmpdir}/fastdl_files_to_compress.txt" ]; then
- totalfiles=$(wc -l < "${tmpdir}/fastdl_files_to_compress.txt")
- # Calculates total file size.
- while read -r dufile; do
- filesize=$(du -b "${dufile}" | awk '{ print $1 }')
- filesizetotal=$((filesizetotal + filesize))
- done < "${tmpdir}/fastdl_files_to_compress.txt"
- fi
-}
-
-fn_fastdl_source() {
- for directory in "${fastdl_directories_array[@]}"; do
- if [ -d "${systemdir}/${directory}" ]; then
- if [ "${directory}" == "maps" ]; then
- local allowed_extentions_array=("*.bsp" "*.ain" "*.nav" "*.jpg" "*.txt")
- elif [ "${directory}" == "materials" ]; then
- local allowed_extentions_array=("*.vtf" "*.vmt" "*.vbf" "*.png" "*.svg")
- elif [ "${directory}" == "models" ]; then
- local allowed_extentions_array=("*.vtx" "*.vvd" "*.mdl" "*.phy" "*.jpg" "*.png")
- elif [ "${directory}" == "particles" ]; then
- local allowed_extentions_array=("*.pcf")
- elif [ "${directory}" == "sound" ]; then
- local allowed_extentions_array=("*.wav" "*.mp3" "*.ogg")
- fi
- for allowed_extention in "${allowed_extentions_array[@]}"; do
- fileswc=0
- tput sc
- while read -r fastdlfile; do
- ((fileswc++))
- tput rc
- tput el
- echo -e "copying ${directory} ${allowed_extention} : ${fileswc}..."
- fn_sleep_time
- # get relative path of file in the dir
- tmprelfilepath="${fastdlfile#"${systemdir}/"}"
- copytodir="${tmprelfilepath%/*}"
- # create relative path for fastdl
- if [ ! -d "${fastdldir}/${copytodir}" ]; then
- mkdir -p "${fastdldir}/${copytodir}"
- fi
- cp "${fastdlfile}" "${fastdldir}/${copytodir}"
- exitcode=$?
- if [ "${exitcode}" != 0 ]; then
- fn_print_fail_eol_nl
- fn_script_log_fatal "Copying ${fastdlfile} > ${fastdldir}/${copytodir}"
- core_exit.sh
- else
- fn_script_log_pass "Copying ${fastdlfile} > ${fastdldir}/${copytodir}"
- fi
- done < <(find "${systemdir}/${directory}" -type f -iname "${allowed_extention}")
- if [ ${fileswc} != 0 ]; then
- fn_print_ok_eol_nl
- fi
- done
- fi
- done
-}
-
-# Builds the fastdl directory content.
-fn_fastdl_build() {
- # Copy all needed files for FastDL.
- echo -e "copying files to ${fastdldir}"
- fn_script_log_info "Copying files to ${fastdldir}"
- if [ "${shortname}" == "gmod" ]; then
- fn_fastdl_gmod
- fn_fastdl_gmod_dl_enforcer
- else
- fn_fastdl_source
- fi
-}
-
-# Generate lua file that will force download any file into the FastDL directory.
-fn_fastdl_gmod_dl_enforcer() {
- # Clear old lua file.
- if [ -f "${luafastdlfullpath}" ]; then
- echo -en "removing existing download enforcer: ${luafastdlfile}..."
- rm -f "${luafastdlfullpath:?}"
- exitcode=$?
- if [ "${exitcode}" != 0 ]; then
- fn_print_fail_eol_nl
- fn_script_log_fatal "Removing existing download enforcer ${luafastdlfullpath}"
- core_exit.sh
- else
- fn_print_ok_eol_nl
- fn_script_log_pass "Removing existing download enforcer ${luafastdlfullpath}"
- fi
- fi
- # Generate new one if user said yes.
- if [ "${luaresource}" == "on" ]; then
- echo -en "creating new download enforcer: ${luafastdlfile}..."
- touch "${luafastdlfullpath}"
- # Read all filenames and put them into a lua file at the right path.
- while read -r line; do
- echo -e "resource.AddFile( \"${line}\" )" >> "${luafastdlfullpath}"
- done < <(find "${fastdldir:?}" \( -type f ! -name "*.bz2" \) -printf '%P\n')
- exitcode=$?
- if [ "${exitcode}" != 0 ]; then
- fn_print_fail_eol_nl
- fn_script_log_fatal "Creating new download enforcer ${luafastdlfullpath}"
- core_exit.sh
- else
- fn_print_ok_eol_nl
- fn_script_log_pass "Creating new download enforcer ${luafastdlfullpath}"
- fi
- fi
-}
-
-# Compresses FastDL files using bzip2.
-fn_fastdl_bzip2() {
- while read -r filetocompress; do
- echo -en "\r\033[Kcompressing ${filetocompress}..."
- bzip2 -f "${filetocompress}"
- exitcode=$?
- if [ "${exitcode}" != 0 ]; then
- fn_print_fail_eol_nl
- fn_script_log_fatal "Compressing ${filetocompress}"
- core_exit.sh
- else
- fn_script_log_pass "Compressing ${filetocompress}"
- fi
- done < <(find "${fastdldir:?}" \( -type f ! -name "*.bz2" \))
- fn_print_ok_eol_nl
-}
-
-# Run functions.
-fn_fastdl_preview
-fn_clear_old_fastdl
-fn_fastdl_dirs
-fn_fastdl_build
-fn_fastdl_bzip2
-# Finished message.
-echo -e "FastDL files are located in:"
-echo -e "${fastdldir}"
-echo -e "FastDL completed"
-fn_script_log_info "FastDL completed"
-
-core_exit.sh
diff --git a/lgsm/functions/command_install.sh b/lgsm/functions/command_install.sh
deleted file mode 100644
index 19dc59c7ee..0000000000
--- a/lgsm/functions/command_install.sh
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_install.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Overall function for the installer.
-
-commandname="INSTALL"
-commandaction="Installing"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_firstcommand_set
-
-check.sh
-if [ "$(whoami)" == "root" ] && [ ! -f /.dockerenv ]; then
- check_deps.sh
-else
- install_header.sh
- install_server_dir.sh
- install_logs.sh
- check_deps.sh
- installflag=1
- # Download and install.
- if [ "${shortname}" == "ut2k4" ]; then
- install_server_files.sh
- install_ut2k4_key.sh
- elif [ -z "${appid}" ]; then
- install_server_files.sh
- elif [ "${appid}" ]; then
- install_steamcmd.sh
- install_server_files.sh
- fi
-
- # Configuration.
- install_config.sh
- if [ -v gslt ]; then
- install_gslt.sh
- elif [ "${shortname}" == "dst" ]; then
- install_dst_token.sh
- elif [ "${shortname}" == "squad" ]; then
- install_squad_license.sh
- elif [ "${shortname}" == "ts3" ]; then
- install_ts3db.sh
- elif [ "${shortname}" == "mta" ]; then
- command_install_resources_mta.sh
- fn_firstcommand_reset
- fi
-
- fix.sh
- install_stats.sh
- install_complete.sh
-fi
-core_exit.sh
diff --git a/lgsm/functions/command_install_resources_mta.sh b/lgsm/functions/command_install_resources_mta.sh
deleted file mode 100644
index daf0395511..0000000000
--- a/lgsm/functions/command_install_resources_mta.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_install_resources_mta.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Installs the default resources for Multi Theft Auto.
-
-commandname="DEFAULT-RESOURCES"
-commandaction="Default Resources"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_firstcommand_set
-
-fn_install_resources() {
- echo -e ""
- echo -e "${lightyellow}Installing Default Resources${default}"
- echo -e "================================="
- fn_fetch_file "http://mirror.mtasa.com/mtasa/resources/mtasa-resources-latest.zip" "" "" "" "${tmpdir}" "mtasa-resources-latest.zip" "nochmodx" "norun" "noforce" "nohash"
- fn_dl_extract "${tmpdir}" "mtasa-resources-latest.zip" "${resourcesdir}"
- echo -e "Default Resources Installed."
-}
-
-fn_print_header
-
-if [ -z "${autoinstall}" ]; then
- fn_print_warning_nl "Installing the default resources with existing resources may cause issues."
- if fn_prompt_yn "Do you want to install MTA default resources?" Y; then
- fn_install_resources
- fi
-else
- fn_print_warning_nl "Default resources are not installed when using ./${selfname} auto-install."
- fn_print_information_nl "To install default resources use ./${selfname} install"
-fi
diff --git a/lgsm/functions/command_mods_install.sh b/lgsm/functions/command_mods_install.sh
deleted file mode 100644
index 0edbe5bc04..0000000000
--- a/lgsm/functions/command_mods_install.sh
+++ /dev/null
@@ -1,135 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_mods_install.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: List and installs available mods along with mods_list.sh and mods_core.sh.
-
-commandname="MODS-INSTALL"
-commandaction="Installing mods"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_firstcommand_set
-
-check.sh
-mods_core.sh
-
-fn_print_header
-
-# Displays a list of installed mods.
-fn_mods_installed_list
-if [ "${installedmodscount}" -gt "0" ]; then
- echo -e "Installed addons/mods"
- echo -e "================================="
- # Go through all available commands, get details and display them to the user.
- for ((llindex = 0; llindex < ${#installedmodslist[@]}; llindex++)); do
- # Current mod is the "llindex" value of the array we're going through.
- currentmod="${installedmodslist[llindex]}"
- fn_mod_get_info
- # Display mod info to the user.
- echo -e " * ${green}${modcommand}${default}${default}"
- done
- echo -e ""
-fi
-
-echo -e "Available addons/mods"
-echo -e "================================="
-# Display available mods from mods_list.sh.
-# Set and reset vars
-compatiblemodslistindex=0
-# As long as we're within index values.
-while [ "${compatiblemodslistindex}" -lt "${#compatiblemodslist[@]}" ]; do
- # Set values for convenience.
- displayedmodname="${compatiblemodslist[compatiblemodslistindex]}"
- displayedmodcommand="${compatiblemodslist[compatiblemodslistindex + 1]}"
- displayedmodsite="${compatiblemodslist[compatiblemodslistindex + 2]}"
- displayedmoddescription="${compatiblemodslist[compatiblemodslistindex + 3]}"
- # Output mods to the user.
- echo -e "${displayedmodname} - ${displayedmoddescription} - ${displayedmodsite}"
- echo -e " * ${cyan}${displayedmodcommand}${default}"
- # Increment index from the amount of values we just displayed.
- let "compatiblemodslistindex+=4"
- ((totalmodsavailable++))
-done
-
-# If no mods are available for a specific game.
-if [ -z "${compatiblemodslist}" ]; then
- fn_print_fail_nl "No mods are currently available for ${gamename}."
- fn_script_log_info "No mods are currently available for ${gamename}."
- core_exit.sh
-fi
-fn_script_log_info "${totalmodsavailable} addons/mods are available for install"
-
-## User selects a mod.
-echo -e ""
-while [[ ! " ${availablemodscommands[@]} " =~ " ${usermodselect} " ]]; do
- echo -en "Enter an ${cyan}addon/mod${default} to ${green}install${default} (or exit to abort): "
- read -r usermodselect
- # Exit if user says exit or abort.
- if [ "${usermodselect}" == "exit" ] || [ "${usermodselect}" == "abort" ]; then
- core_exit.sh
- # Supplementary output upon invalid user input.
- elif [[ ! " ${availablemodscommands[@]} " =~ " ${usermodselect} " ]]; then
- fn_print_error2_nl "${usermodselect} is not a valid addon/mod."
- fi
-done
-# Get mod info.
-currentmod="${usermodselect}"
-fn_mod_get_info
-
-echo -e ""
-echo -e "Installing ${modprettyname}"
-echo -e "================================="
-fn_script_log_info "${modprettyname} selected for install"
-
-# Check if the mod is already installed and warn the user.
-if [ -f "${modsinstalledlistfullpath}" ]; then
- if [ "$(sed -n "/^${modcommand}$/p" "${modsinstalledlistfullpath}")" ]; then
- fn_print_warning_nl "${modprettyname} is already installed"
- fn_script_log_warn "${modprettyname} is already installed"
- echo -e " * Any configs may be overwritten."
- if ! fn_prompt_yn "Continue?" Y; then
- core_exit.sh
- fi
- fn_script_log_info "User selected to continue"
- fi
-fi
-
-## Installation.
-# If amxmodx check if metamod exists first
-if [ "${modcommand}" == "amxmodx" ]; then
- fn_mod_exist "metamod"
-fi
-
-if [ "${modcommand}" == "amxmodxcs" ] \
- || [ "${modcommand}" == "amxmodxdod" ] \
- || [ "${modcommand}" == "amxmodxtfc" ] \
- || [ "${modcommand}" == "amxmodxns" ] \
- || [ "${modcommand}" == "amxmodxts" ]; then
- fn_mod_exist "amxmodx"
-fi
-
-fn_create_mods_dir
-fn_mods_clear_tmp_dir
-fn_mods_create_tmp_dir
-fn_mod_install_files
-fn_mod_lowercase
-fn_mod_create_filelist
-fn_mod_copy_destination
-fn_mod_add_list
-fn_mod_tidy_files_list
-fn_mods_clear_tmp_dir
-
-# Create/modify existing liblist.gam file for Metamod
-if [ "${modcommand}" == "metamod" ]; then
- fn_mod_install_liblist_gam_file
-fi
-
-# Create/modify plugins.ini file for Metamod
-if [ "${modcommand}" == "amxmodx" ]; then
- fn_mod_install_amxmodx_file
-fi
-
-echo -e "${modprettyname} installed"
-fn_script_log_pass "${modprettyname} installed."
-
-core_exit.sh
diff --git a/lgsm/functions/command_mods_remove.sh b/lgsm/functions/command_mods_remove.sh
deleted file mode 100644
index 7127dcb3ca..0000000000
--- a/lgsm/functions/command_mods_remove.sh
+++ /dev/null
@@ -1,153 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_mods_uninstall.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Uninstall mods along with mods_list.sh and mods_core.sh.
-
-commandname="MODS-REMOVE"
-commandaction="Removing mods"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_firstcommand_set
-
-check.sh
-mods_core.sh
-fn_mods_check_installed
-
-fn_print_header
-echo -e "Remove addons/mods"
-echo -e "================================="
-
-# Displays list of installed mods.
-# Generates list to display to user.
-fn_mods_installed_list
-for ((mlindex = 0; mlindex < ${#installedmodslist[@]}; mlindex++)); do
- # Current mod is the "mlindex" value of the array we are going through.
- currentmod="${installedmodslist[mlindex]}"
- # Get mod info.
- fn_mod_get_info
- # Display mod info to the user.
- echo -e "${red}${modcommand}${default} - ${modprettyname} - ${moddescription}"
-done
-
-echo -e ""
-# Keep prompting as long as the user input doesn't correspond to an available mod.
-while [[ ! " ${installedmodslist[@]} " =~ " ${usermodselect} " ]]; do
- echo -en "Enter an ${cyan}addon/mod${default} to ${red}remove${default} (or exit to abort): "
- read -r usermodselect
- # Exit if user says exit or abort.
- if [ "${usermodselect}" == "exit" ] || [ "${usermodselect}" == "abort" ]; then
- core_exit.sh
- # Supplementary output upon invalid user input.
- elif [[ ! " ${availablemodscommands[@]} " =~ " ${usermodselect} " ]]; then
- fn_print_error2_nl "${usermodselect} is not a valid addon/mod."
- fi
-done
-
-fn_print_warning_nl "You are about to remove ${cyan}${usermodselect}${default}."
-echo -e " * Any custom files/configuration will be removed."
-if ! fn_prompt_yn "Continue?" Y; then
- core_exit.sh
-fi
-
-currentmod="${usermodselect}"
-fn_mod_get_info
-fn_check_mod_files_list
-
-# Uninstall the mod.
-fn_script_log_info "Removing ${modsfilelistsize} files from ${modprettyname}"
-echo -e "removing ${modprettyname}"
-echo -e "* ${modsfilelistsize} files to be removed"
-echo -e "* location: ${modinstalldir}"
-fn_sleep_time
-# Go through every file and remove it.
-modfileline="1"
-tput sc
-while [ "${modfileline}" -le "${modsfilelistsize}" ]; do
- # Current line defines current file to remove.
- currentfileremove=$(sed "${modfileline}q;d" "${modsdir}/${modcommand}-files.txt")
- # If file or directory exists, then remove it.
-
- if [ -f "${modinstalldir}/${currentfileremove}" ] || [ -d "${modinstalldir}/${currentfileremove}" ]; then
- rm -rf "${modinstalldir:?}/${currentfileremove:?}"
- ((exitcode = $?))
- if [ "${exitcode}" != 0 ]; then
- fn_script_log_fatal "Removing ${modinstalldir}/${currentfileremove}"
- break
- else
- fn_script_log_pass "Removing ${modinstalldir}/${currentfileremove}"
- fi
- fi
- tput rc
- tput el
- echo -e "removing ${modprettyname} ${modfileline} / ${modsfilelistsize} : ${currentfileremove}..."
- ((modfileline++))
-done
-
-# Added logic not to fail since removing game specific mods (amxmodxcs) removes files that will
-# not be found when removing the base (amxmodx) mod
-if [ "${modcommand}" != "amxmodx" ]; then
- if [ "${exitcode}" != 0 ]; then
- fn_print_fail_eol_nl
- core_exit.sh
- else
- fn_print_ok_eol_nl
- fi
-else
- fn_print_ok_eol_nl
-fi
-
-# Remove file list.
-echo -en "removing ${modcommand}-files.txt..."
-fn_sleep_time
-rm -rf "${modsdir:?}/${modcommand}-files.txt"
-exitcode=$?
-if [ "${exitcode}" != 0 ]; then
- fn_script_log_fatal "Removing ${modsdir}/${modcommand}-files.txt"
- fn_print_fail_eol_nl
- core_exit.sh
-else
- fn_script_log_pass "Removing ${modsdir}/${modcommand}-files.txt"
- fn_print_ok_eol_nl
-fi
-
-# Remove mods from installed mods list.
-echo -en "removing ${modcommand} from ${modsinstalledlist}..."
-fn_sleep_time
-
-sed -i "/^${modcommand}$/d" "${modsinstalledlistfullpath}"
-exitcode=$?
-if [ "${exitcode}" != 0 ]; then
- fn_script_log_fatal "Removing ${modcommand} from ${modsinstalledlist}"
- fn_print_fail_eol_nl
- core_exit.sh
-else
- fn_script_log_pass "Removing ${modcommand} from ${modsinstalledlist}"
- fn_print_ok_eol_nl
-fi
-
-# Oxide fix
-# Oxide replaces server files, so a validate is required after uninstall.
-if [ "${engine}" == "unity3d" ] && [[ "${modprettyname}" == *"Oxide"* ]]; then
- fn_print_information_nl "Validating to restore original ${gamename} files replaced by Oxide"
- fn_script_log "Validating to restore original ${gamename} files replaced by Oxide"
- exitbypass="1"
- command_validate.sh
- fn_firstcommand_reset
- unset exitbypass
-fi
-
-# Remove/modify existing liblist.gam file for Metamod
-if [ "${modcommand}" == "metamod" ]; then
- fn_mod_remove_liblist_gam_file
-fi
-
-# Remove/modify plugins.ini file for AMX Mod X
-if [ "${modcommand}" == "amxmodx" ]; then
- fn_mod_remove_amxmodx_file
-fi
-
-echo -e "${modprettyname} removed"
-fn_script_log "${modprettyname} removed"
-
-core_exit.sh
diff --git a/lgsm/functions/command_mods_update.sh b/lgsm/functions/command_mods_update.sh
deleted file mode 100644
index 80b23fea9c..0000000000
--- a/lgsm/functions/command_mods_update.sh
+++ /dev/null
@@ -1,109 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_mods_update.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Updates installed mods along with mods_list.sh and mods_core.sh.
-
-commandname="MODS-UPDATE"
-commandaction="Updating mods"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_firstcommand_set
-
-check.sh
-mods_core.sh
-
-# Prevents specific files being overwritten upon update (set by ${modkeepfiles}).
-# For that matter, remove cfg files after extraction before copying them to destination.
-fn_remove_cfg_files() {
- if [ "${modkeepfiles}" != "OVERWRITE" ] && [ "${modkeepfiles}" != "NOUPDATE" ]; then
- echo -e "the following files/directories will be preserved:"
- fn_sleep_time
- # Count how many files there are to remove.
- filestopreserve=$(echo -e "${modkeepfiles}" | awk -F ';' '{ print NF }')
- # Test all subvalues of "modkeepfiles" using the ";" separator.
- for ((preservefilesindex = 1; preservefilesindex < filestopreserve; preservefilesindex++)); do
- # Put the current file we are looking for into a variable.
- filetopreserve=$(echo -e "${modkeepfiles}" | awk -F ';' -v x=${preservefilesindex} '{ print $x }')
- echo -e " * serverfiles/${filetopreserve}"
- # If it matches an existing file that have been extracted delete the file.
- if [ -f "${extractdest}/${filetopreserve}" ] || [ -d "${extractdest}/${filetopreserve}" ]; then
- rm -r "${extractdest:?}/${filetopreserve}"
- # Write the file path in a tmp file, to rebuild a full file list as it is rebuilt upon update.
- if [ ! -f "${modsdir}/.removedfiles.tmp" ]; then
- touch "${modsdir}/.removedfiles.tmp"
- fi
- echo -e "${filetopreserve}" >> "${modsdir}/.removedfiles.tmp"
- fi
- done
- fi
-}
-
-fn_print_dots "Update addons/mods"
-fn_mods_check_installed
-fn_print_info_nl "Update addons/mods: ${installedmodscount} addons/mods will be updated"
-fn_script_log_info "${installedmodscount} mods or addons will be updated"
-fn_mods_installed_list
-# Go through all available commands, get details and display them to the user.
-for ((ulindex = 0; ulindex < ${#installedmodslist[@]}; ulindex++)); do
- # Current mod is the "ulindex" value of the array we're going through.
- currentmod="${installedmodslist[ulindex]}"
- fn_mod_get_info
- # Display installed mods and the update policy.
- if [ -z "${modkeepfiles}" ]; then
- # If modkeepfiles is not set for some reason, that's a problem.
- fn_script_log_error "Could not find update policy for ${modprettyname}"
- fn_print_error_nl "Could not find update policy for ${modprettyname}"
- exitcode="1"
- core_exit.sh
- # If the mod won't get updated.
- elif [ "${modkeepfiles}" == "NOUPDATE" ]; then
- echo -e " * ${red}{modprettyname}${default} (won't be updated)"
- # If the mode is just overwritten.
- elif [ "${modkeepfiles}" == "OVERWRITE" ]; then
- echo -e " * ${modprettyname} (overwrite)"
- else
- echo -e " * ${yellow}${modprettyname}${default} (retain common custom files)"
- fi
-done
-
-## Update
-# List all installed mods and apply update.
-# Reset line value.
-installedmodsline="1"
-while [ "${installedmodsline}" -le "${installedmodscount}" ]; do
- currentmod=$(sed "${installedmodsline}q;d" "${modsinstalledlistfullpath}")
- if [ "${currentmod}" ]; then
- fn_mod_get_info
- # Don not update mod if the policy is set to "NOUPDATE".
- if [ "${modkeepfiles}" == "NOUPDATE" ]; then
- fn_print_info "${modprettyname} will not be updated to preserve custom files"
- fn_script_log_info "${modprettyname} will not be updated to preserve custom files"
- else
- echo -e ""
- echo -e "==> Updating ${modprettyname}"
- fn_create_mods_dir
- fn_mods_clear_tmp_dir
- fn_mods_create_tmp_dir
- fn_mod_install_files
- fn_mod_lowercase
- fn_remove_cfg_files
- fn_mod_create_filelist
- fn_mod_copy_destination
- fn_mod_add_list
- fn_mod_tidy_files_list
- fn_mods_clear_tmp_dir
- fi
- ((installedmodsline++))
- else
- fn_print_fail "No mod was selected"
- fn_script_log_fatal "No mod was selected"
- exitcode="1"
- core_exit.sh
- fi
-done
-echo -e ""
-fn_print_ok_nl "Mods update complete"
-fn_script_log_info "Mods update complete"
-
-core_exit.sh
diff --git a/lgsm/functions/command_monitor.sh b/lgsm/functions/command_monitor.sh
deleted file mode 100644
index 20c830e0b8..0000000000
--- a/lgsm/functions/command_monitor.sh
+++ /dev/null
@@ -1,245 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_monitor.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Monitors server by checking for running processes
-# then passes to gamedig and gsquery.
-
-commandname="MONITOR"
-commandaction="Monitoring"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_firstcommand_set
-
-fn_monitor_check_lockfile() {
- # Monitor does not run it lockfile is not found.
- if [ ! -f "${lockdir}/${selfname}.lock" ]; then
- fn_print_dots "Checking lockfile: "
- fn_print_checking_eol
- fn_script_log_info "Checking lockfile: CHECKING"
- fn_print_error "Checking lockfile: No lockfile found: "
- fn_print_error_eol_nl
- fn_script_log_error "Checking lockfile: No lockfile found: ERROR"
- echo -e "* Start ${selfname} to run monitor."
- core_exit.sh
- fi
-
- # Fix if lockfile is not unix time or contains letters
- if [ -f "${lockdir}/${selfname}.lock" ] && [[ "$(head -n 1 "${lockdir}/${selfname}.lock")" =~ [A-Za-z] ]]; then
- date '+%s' > "${lockdir}/${selfname}.lock"
- echo "${version}" >> "${lockdir}/${selfname}.lock"
- echo "${port}" >> "${lockdir}/${selfname}.lock"
- fi
-}
-
-fn_monitor_check_update() {
- # Monitor will check if update is already running.
- if [ "$(pgrep "${selfname} update" | wc -l)" != "0" ]; then
- fn_print_dots "Checking active updates: "
- fn_print_checking_eol
- fn_script_log_info "Checking active updates: CHECKING"
- fn_print_error_nl "Checking active updates: SteamCMD is currently checking for updates: "
- fn_print_error_eol
- fn_script_log_error "Checking active updates: SteamCMD is currently checking for updates: ERROR"
- core_exit.sh
- fi
-}
-
-fn_monitor_check_session() {
- fn_print_dots "Checking session: "
- fn_print_checking_eol
- fn_script_log_info "Checking session: CHECKING"
- # uses status var from check_status.sh
- if [ "${status}" != "0" ]; then
- fn_print_ok "Checking session: "
- fn_print_ok_eol_nl
- fn_script_log_pass "Checking session: OK"
- else
- fn_print_error "Checking session: "
- fn_print_fail_eol_nl
- fn_script_log_fatal "Checking session: FAIL"
- alert="restart"
- alert.sh
- fn_script_log_info "Checking session: Monitor is restarting ${selfname}"
- command_restart.sh
- core_exit.sh
- fi
-}
-
-fn_monitor_check_queryport() {
- # Monitor will check queryport is set before continuing.
- if [ -z "${queryport}" ] || [ "${queryport}" == "0" ]; then
- fn_print_dots "Checking port: "
- fn_print_checking_eol
- fn_script_log_info "Checking port: CHECKING"
- if [ -n "${rconenabled}" ] && [ "${rconenabled}" != "true" ] && [ "${shortname}" == "av" ]; then
- fn_print_warn "Checking port: Unable to query, rcon is not enabled"
- fn_script_log_warn "Checking port: Unable to query, rcon is not enabled"
- else
- fn_print_error "Checking port: Unable to query, queryport is not set"
- fn_script_log_error "Checking port: Unable to query, queryport is not set"
- fi
- core_exit.sh
- fi
-}
-
-fn_query_gsquery() {
- if [ ! -f "${functionsdir}/query_gsquery.py" ]; then
- fn_fetch_file_github "lgsm/functions" "query_gsquery.py" "${functionsdir}" "chmodx" "norun" "noforce" "nohash"
- fi
- "${functionsdir}"/query_gsquery.py -a "${queryip}" -p "${queryport}" -e "${querytype}" > /dev/null 2>&1
- querystatus="$?"
-}
-
-fn_query_tcp() {
- bash -c 'exec 3<> /dev/tcp/'${queryip}'/'${queryport}'' > /dev/null 2>&1
- querystatus="$?"
-}
-
-fn_monitor_query() {
- # Will loop and query up to 5 times every 15 seconds.
- # Query will wait up to 60 seconds to confirm server is down as server can become non-responsive during map changes.
- totalseconds=0
- for queryattempt in {1..5}; do
- for queryip in "${queryips[@]}"; do
- fn_print_dots "Querying port: ${querymethod}: ${queryip}:${queryport} : ${totalseconds}/${queryattempt}: "
- fn_print_querying_eol
- fn_script_log_info "Querying port: ${querymethod}: ${queryip}:${queryport} : ${queryattempt} : QUERYING"
- # querydelay
- if [ "$(head -n 1 "${lockdir}/${selfname}.lock")" -gt "$(date "+%s" -d "${querydelay} mins ago")" ]; then
- fn_print_ok "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt}: "
- fn_print_delay_eol_nl
- fn_script_log_info "Querying port: ${querymethod}: ${ip}:${queryport} : ${queryattempt} : DELAY"
- fn_script_log_info "Query bypassed: ${gameservername} started less than ${querydelay} minutes ago"
- fn_script_log_info "Server started: $(date -d @$(head -n 1 "${lockdir}/${selfname}.lock"))"
- fn_script_log_info "Current time: $(date)"
- monitorpass=1
- core_exit.sh
- # will use query method selected in fn_monitor_loop
- # gamedig
- elif [ "${querymethod}" == "gamedig" ]; then
- query_gamedig.sh
- # gsquery
- elif [ "${querymethod}" == "gsquery" ]; then
- fn_query_gsquery
- #tcp query
- elif [ "${querymethod}" == "tcp" ]; then
- fn_query_tcp
- fi
-
- if [ "${querystatus}" == "0" ]; then
- # Server query OK.
- fn_print_ok "Querying port: ${querymethod}: ${queryip}:${queryport} : ${totalseconds}/${queryattempt}: "
- fn_print_ok_eol_nl
- fn_script_log_pass "Querying port: ${querymethod}: ${queryip}:${queryport} : ${queryattempt} : OK"
- monitorpass=1
- if [ "${querystatus}" == "0" ]; then
- # Add query data to log.
- if [ "${gdname}" ]; then
- fn_script_log_info "Server name: ${gdname}"
- fi
- if [ "${gdplayers}" ]; then
- fn_script_log_info "Players: ${gdplayers}/${gdmaxplayers}"
- fi
- if [ "${gdbots}" ]; then
- fn_script_log_info "Bots: ${gdbots}"
- fi
- if [ "${gdmap}" ]; then
- fn_script_log_info "Map: ${gdmap}"
- fi
- if [ "${gdgamemode}" ]; then
- fn_script_log_info "Game Mode: ${gdgamemode}"
- fi
-
- # send LinuxGSM stats if monitor is OK.
- if [ "${stats}" == "on" ] || [ "${stats}" == "y" ]; then
- info_stats.sh
- fi
- fi
- core_exit.sh
- else
- # Server query FAIL.
- fn_print_fail "Querying port: ${querymethod}: ${queryip}:${queryport} : ${totalseconds}/${queryattempt}: "
- fn_print_fail_eol
- fn_script_log_warn "Querying port: ${querymethod}: ${queryip}:${queryport} : ${queryattempt} : FAIL"
- # Monitor will try gamedig (if supported) for first 30s then gsquery before restarting.
- # gsquery will fail if longer than 60s
- if [ "${totalseconds}" -ge "59" ]; then
- # Monitor will FAIL if over 60s and trigger gane server reboot.
- fn_print_fail "Querying port: ${querymethod}: ${queryip}:${queryport} : ${totalseconds}/${queryattempt}: "
- fn_print_fail_eol_nl
- fn_script_log_warn "Querying port: ${querymethod}: ${queryip}:${queryport} : ${queryattempt} : FAIL"
- # Send alert if enabled.
- alert="restartquery"
- alert.sh
- command_restart.sh
- fn_firstcommand_reset
- core_exit.sh
- fi
- fi
- done
- # Second counter will wait for 15s before breaking loop.
- for seconds in {1..15}; do
- fn_print_fail "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt} : ${cyan}WAIT${default}"
- sleep 0.5
- totalseconds=$((totalseconds + 1))
- if [ "${seconds}" == "15" ]; then
- break
- fi
- done
- done
-}
-
-fn_monitor_loop() {
- # loop though query methods selected by querymode.
- totalseconds=0
- if [ "${querymode}" == "2" ]; then
- local query_methods_array=(gamedig gsquery)
- elif [ "${querymode}" == "3" ]; then
- local query_methods_array=(gamedig)
- elif [ "${querymode}" == "4" ]; then
- local query_methods_array=(gsquery)
- elif [ "${querymode}" == "5" ]; then
- local query_methods_array=(tcp)
- fi
- for querymethod in "${query_methods_array[@]}"; do
- # Will check if gamedig is installed and bypass if not.
- if [ "${querymethod}" == "gamedig" ]; then
- if [ "$(command -v gamedig 2> /dev/null)" ] && [ "$(command -v jq 2> /dev/null)" ]; then
- if [ -z "${monitorpass}" ]; then
- fn_monitor_query
- fi
- else
- fn_script_log_info "gamedig is not installed"
- fn_script_log_info "https://docs.linuxgsm.com/requirements/gamedig"
- fi
- else
- # will not query if query already passed.
- if [ -z "${monitorpass}" ]; then
- fn_monitor_query
- fi
- fi
- done
-}
-
-monitorflag=1
-check.sh
-core_logs.sh
-info_game.sh
-
-# query pre-checks
-fn_monitor_check_lockfile
-fn_monitor_check_update
-fn_monitor_check_session
-# Monitor will not continue if session only check.
-if [ "${querymode}" != "1" ]; then
- fn_monitor_check_queryport
-
- # Add a querydelay of 1 min if var missing.
- if [ -z "${querydelay}" ]; then
- querydelay="1"
- fi
-
- fn_monitor_loop
-fi
-core_exit.sh
diff --git a/lgsm/functions/command_postdetails.sh b/lgsm/functions/command_postdetails.sh
deleted file mode 100644
index dad44d9afb..0000000000
--- a/lgsm/functions/command_postdetails.sh
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_postdetails.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Strips sensitive information out of Details output.
-
-commandname="POST-DETAILS"
-commandaction="Posting details"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_firstcommand_set
-
-posttarget="https://termbin.com"
-
-# source all of the functions defined in the details command.
-info_messages.sh
-
-fn_bad_postdetailslog() {
- fn_print_fail_nl "Unable to create temporary file ${postdetailslog}."
- core_exit.sh
-}
-
-# Remove any existing postdetails.log file.
-if [ -f "${postdetailslog}" ]; then
- rm -f "${postdetailslog:?}"
-fi
-
-# Rather than a one-pass sed parser, default to using a temporary directory.
-if [ "${exitbypass}" ]; then
- postdetailslog="${alertlog}"
-else
- # Run checks and gathers details to display.
- check.sh
- info_game.sh
- info_distro.sh
- info_messages.sh
- for queryip in "${queryips[@]}"; do
- query_gamedig.sh
- if [ "${querystatus}" == "0" ]; then
- break
- fi
- done
- touch "${postdetailslog}" || fn_bad_postdetailslog
- {
- fn_info_message_distro
- fn_info_message_server_resource
- fn_info_message_gameserver_resource
- fn_info_message_gameserver
- fn_info_message_script
- fn_info_message_backup
- # Some game servers do not have parms.
- if [ "${shortname}" != "jc2" ] && [ "${shortname}" != "jc3" ] && [ "${shortname}" != "dst" ] && [ "${shortname}" != "pz" ] && [ "${engine}" != "renderware" ]; then
- fn_info_message_commandlineparms
- fi
- fn_info_message_ports_edit
- fn_info_message_ports
- fn_info_message_select_engine
- fn_info_message_statusbottom
- } | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" | tee -a "${postdetailslog}" > /dev/null 2>&1
-fi
-
-fn_print_dots "termbin.com"
-link=$(cat "${postdetailslog}" | nc termbin.com 9999 | tr -d '\n\0')
-fn_print_ok_nl "termbin.com for 30D"
-fn_script_log_pass "termbin.com for 30D"
-pdurl="${link}"
-
-if [ "${firstcommandname}" == "POST-DETAILS" ]; then
- echo -e ""
- echo -e "Please share the following url for support: "
- echo -e "${pdurl}"
-fi
-fn_script_log_info "${pdurl}"
-alerturl="${pdurl}"
-
-if [ -z "${exitbypass}" ]; then
- core_exit.sh
-fi
diff --git a/lgsm/functions/command_restart.sh b/lgsm/functions/command_restart.sh
deleted file mode 100644
index 3bf60c32cd..0000000000
--- a/lgsm/functions/command_restart.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_restart.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Restarts the server.
-
-commandname="MODS-INSTALL"
-commandaction="Restarting"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_firstcommand_set
-
-info_game.sh
-exitbypass=1
-command_stop.sh
-command_start.sh
-fn_firstcommand_reset
-core_exit.sh
diff --git a/lgsm/functions/command_send.sh b/lgsm/functions/command_send.sh
deleted file mode 100644
index d652125717..0000000000
--- a/lgsm/functions/command_send.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_send.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Send command to the server tmux console.
-
-commandname="SEND"
-commandaction="Send"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_firstcommand_set
-
-check.sh
-if [ -z "${userinput2}" ]; then
- fn_print_header
- fn_print_information_nl "Send a command to the console."
-fi
-
-check_status.sh
-if [ "${status}" != "0" ]; then
- if [ -n "${userinput2}" ]; then
- commandtosend="${userinput2}"
- else
- echo ""
- commandtosend=$(fn_prompt_message "send: ")
- fi
- echo ""
- fn_print_dots "Sending command to console: \"${commandtosend}\""
- tmux -L "${sessionname}" send-keys -t "${servicename}" "${commandtosend}" ENTER
- fn_print_ok_nl "Sending command to console: \"${commandtosend}\""
- fn_script_log_pass "Command \"${commandtosend}\" sent to console"
-else
- fn_print_error_nl "Server not running"
- fn_script_log_error "Failed to access: Server not running"
- if fn_prompt_yn "Do you want to start the server?" Y; then
- exitbypass=1
- command_start.sh
- fi
-fi
-
-core_exit.sh
diff --git a/lgsm/functions/command_skeleton.sh b/lgsm/functions/command_skeleton.sh
deleted file mode 100644
index 53c4ddec52..0000000000
--- a/lgsm/functions/command_skeleton.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_skeleton.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Creates an copy of a game servers directorys.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-fn_print_dots "Creating skeleton directory"
-check.sh
-
-# Find all directorys and create them in the skel directory
-find "${rootdir}" -type d -not \( -path ./skel -prune \) | cpio -pdvm skel 2> /dev/null
-exitcode=$?
-if [ "${exitcode}" != 0 ]; then
- fn_print_fail_nl "Creating skeleton directory"
- fn_script_log_fatal "Creating skeleton directory"
-else
- fn_print_ok_nl "Creating skeleton directory: ./skel"
- fn_script_log_pass "Creating skeleton directory: ./skel"
-fi
-core_exit.sh
diff --git a/lgsm/functions/command_start.sh b/lgsm/functions/command_start.sh
deleted file mode 100644
index 699bc82220..0000000000
--- a/lgsm/functions/command_start.sh
+++ /dev/null
@@ -1,224 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_start.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Starts the server.
-
-commandname="START"
-commandaction="Starting"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-addtimestamp="gawk '{ print strftime(\\\"[$logtimestampformat]\\\"), \\\$0 }'"
-fn_firstcommand_set
-
-fn_start_teamspeak3() {
- if [ ! -f "${servercfgfullpath}" ]; then
- fn_print_warn_nl "${servercfgfullpath} is missing"
- fn_script_log_warn "${servercfgfullpath} is missing"
- echo " * Creating blank ${servercfg}"
- fn_script_log_info "Creating blank ${servercfg}"
- fn_sleep_time
- echo " * ${servercfg} can remain blank by default."
- fn_script_log_info "${servercfgfullpath} can remain blank by default."
- fn_sleep_time
- echo " * ${servercfg} is located in ${servercfgfullpath}."
- fn_script_log_info "${servercfg} is located in ${servercfgfullpath}."
- sleep 5
- touch "${servercfgfullpath}"
- fi
- # Accept license.
- if [ ! -f "${executabledir}/.ts3server_license_accepted" ]; then
- install_eula.sh
- fi
- fn_start_tmux
-}
-
-# This will allow the Jedi Knight 2 version to be printed in console on start.
-# Used to allow update to detect JK2MV server version.
-fn_start_jk2() {
- fn_start_tmux
- tmux -L "${sessionname}" send -t "${sessionname}" version ENTER > /dev/null 2>&1
-}
-
-fn_start_tmux() {
- if [ "${parmsbypass}" ]; then
- startparameters=""
- fi
- # check for tmux size variables.
- if [[ "${servercfgtmuxwidth}" =~ ^[0-9]+$ ]]; then
- sessionwidth="${servercfgtmuxwidth}"
- else
- sessionwidth="80"
- fi
- if [[ "${servercfgtmuxheight}" =~ ^[0-9]+$ ]]; then
- sessionheight="${servercfgtmuxheight}"
- else
- sessionheight="23"
- fi
-
- # Log rotation.
- fn_script_log_info "Rotating log files"
- if [ "${engine}" == "unreal2" ] && [ -f "${gamelog}" ]; then
- mv "${gamelog}" "${gamelogdate}"
- fi
- if [ -f "${lgsmlog}" ]; then
- mv "${lgsmlog}" "${lgsmlogdate}"
- fi
- if [ -f "${consolelog}" ]; then
- mv "${consolelog}" "${consolelogdate}"
- fi
-
- # Create lockfile
- date '+%s' > "${lockdir}/${selfname}.lock"
- echo "${version}" >> "${lockdir}/${selfname}.lock"
- echo "${port}" >> "${lockdir}/${selfname}.lock"
- fn_reload_startparameters
-
- if [ "${shortname}" == "av" ]; then
- cd "${systemdir}" || exit
- else
- cd "${executabledir}" || exit
- fi
-
- tmux -L "${sessionname}" new-session -d -x "${sessionwidth}" -y "${sessionheight}" -s "${sessionname}" "${preexecutable} ${executable} ${startparameters}" 2> "${lgsmlogdir}/.${selfname}-tmux-error.tmp"
-
- # Create logfile.
- touch "${consolelog}"
-
- # Create last start lock file
- date +%s > "${lockdir}/${selfname}-laststart.lock"
-
- # tmux compiled from source will return "master", therefore ignore it.
- if [ "${tmuxv}" == "master" ]; then
- fn_script_log "tmux version: master (user compiled)"
- echo -e "tmux version: master (user compiled)" >> "${consolelog}"
- if [ "${consolelogging}" == "on" ] || [ -z "${consolelogging}" ]; then
- if [ "$logtimestamp" == "on" ]; then
- tmux -L "${sessionname}" pipe-pane -o -t "${sessionname}" "exec bash -c \"cat | $addtimestamp\" >> '${consolelog}'"
- else
- tmux -L "${sessionname}" pipe-pane -o -t "${sessionname}" "exec cat >> '${consolelog}'"
- fi
- fi
-
- elif [ -n "${tmuxv}" ]; then
- # tmux pipe-pane not supported in tmux versions < 1.6.
- if [ "${tmuxvdigit}" -lt "16" ]; then
- echo -e "Console logging disabled: tmux => 1.6 required
- https://linuxgsm.com/tmux-upgrade
- Currently installed: $(tmux -V)" > "${consolelog}"
-
- # Console logging disabled: Bug in tmux 1.8 breaks logging.
- elif [ "${tmuxvdigit}" -eq "18" ]; then
- echo -e "Console logging disabled: Bug in tmux 1.8 breaks logging
- https://linuxgsm.com/tmux-upgrade
- Currently installed: $(tmux -V)" > "${consolelog}"
- # Console logging enable or not set.
- elif [ "${consolelogging}" == "on" ] || [ -z "${consolelogging}" ]; then
- if [ "$logtimestamp" == "on" ]; then
- tmux pipe-pane -o -t "${sessionname}" "exec bash -c \"cat | $addtimestamp\" >> '${consolelog}'"
- else
- tmux pipe-pane -o -t "${sessionname}" "exec cat >> '${consolelog}'"
- fi
- fi
- else
- echo -e "Unable to detect tmux version" >> "${consolelog}"
- fn_script_log_warn "Unable to detect tmux version"
- fi
-
- # Console logging disabled.
- if [ "${consolelogging}" == "off" ]; then
- echo -e "Console logging disabled by user" >> "${consolelog}"
- fn_script_log_info "Console logging disabled by user"
- fi
- fn_sleep_time
-
- # If the server fails to start.
- check_status.sh
- if [ "${status}" == "0" ]; then
- fn_print_fail_nl "Unable to start ${servername}"
- fn_script_log_fatal "Unable to start ${servername}"
- if [ -s "${lgsmlogdir}/.${selfname}-tmux-error.tmp" ]; then
- fn_print_fail_nl "Unable to start ${servername}: tmux error:"
- fn_script_log_fatal "Unable to start ${servername}: tmux error:"
- echo -e ""
- echo -e "Command"
- echo -e "================================="
- echo -e "tmux -L \"${sessionname}\" new-session -d -s \"${sessionname}\" \"${preexecutable} ${executable} ${startparameters}\"" | tee -a "${lgsmlog}"
- echo -e ""
- echo -e "Error"
- echo -e "================================="
- tee -a "${lgsmlog}" < "${lgsmlogdir}/.${selfname}-tmux-error.tmp"
-
- # Detected error https://linuxgsm.com/support
- if grep -c "Operation not permitted" "${lgsmlogdir}/.${selfname}-tmux-error.tmp"; then
- echo -e ""
- echo -e "Fix"
- echo -e "================================="
- if ! grep "tty:" /etc/group | grep "$(whoami)"; then
- echo -e "$(whoami) is not part of the tty group."
- fn_script_log_info "$(whoami) is not part of the tty group."
- group=$(grep tty /etc/group)
- echo -e ""
- echo -e " ${group}"
- fn_script_log_info "${group}"
- echo -e ""
- echo -e "Run the following command with root privileges."
- echo -e ""
- echo -e " usermod -G tty $(whoami)"
- echo -e ""
- echo -e "https://linuxgsm.com/tmux-op-perm"
- fn_script_log_info "https://linuxgsm.com/tmux-op-perm"
- else
- echo -e "No known fix currently. Please log an issue."
- fn_script_log_info "No known fix currently. Please log an issue."
- echo -e "https://linuxgsm.com/support"
- fn_script_log_info "https://linuxgsm.com/support"
- fi
- fi
- fi
- core_exit.sh
- else
- fn_print_ok "${servername}"
- fn_script_log_pass "Started ${servername}"
- fi
- rm -f "${lgsmlogdir:?}/.${selfname}-tmux-error.tmp" 2> /dev/null
- echo -en "\n"
-}
-
-check.sh
-
-# Is the server already started.
-# $status comes from check_status.sh, which is run by check.sh for this command
-if [ "${status}" != "0" ]; then
- fn_print_dots "${servername}"
- fn_print_info_nl "${servername} is already running"
- fn_script_log_error "${servername} is already running"
- if [ -z "${exitbypass}" ]; then
- core_exit.sh
- fi
-fi
-if [ -z "${fixbypass}" ]; then
- fix.sh
-fi
-info_game.sh
-core_logs.sh
-
-# Will check for updates is updateonstart is yes.
-if [ "${updateonstart}" == "yes" ] || [ "${updateonstart}" == "1" ] || [ "${updateonstart}" == "on" ]; then
- exitbypass=1
- unset updateonstart
- command_update.sh
- fn_firstcommand_reset
-fi
-
-fn_print_dots "${servername}"
-
-if [ "${shortname}" == "ts3" ]; then
- fn_start_teamspeak3
-elif [ "${shortname}" == "jk2" ]; then
- fn_start_jk2
-else
- fn_start_tmux
-fi
-
-core_exit.sh
diff --git a/lgsm/functions/command_stop.sh b/lgsm/functions/command_stop.sh
deleted file mode 100644
index 92785af98e..0000000000
--- a/lgsm/functions/command_stop.sh
+++ /dev/null
@@ -1,283 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_stop.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Stops the server.
-
-commandname="STOP"
-commandaction="Stopping"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_firstcommand_set
-
-# Attempts graceful shutdown by sending 'CTRL+c'.
-fn_stop_graceful_ctrlc() {
- fn_print_dots "Graceful: CTRL+c"
- fn_script_log_info "Graceful: CTRL+c"
- # Sends quit.
- tmux -L "${sessionname}" send-keys -t "${sessionname}" C-c > /dev/null 2>&1
- # Waits up to 30 seconds giving the server time to shutdown gracefuly.
- for seconds in {1..30}; do
- check_status.sh
- if [ "${status}" == "0" ]; then
- fn_print_ok "Graceful: CTRL+c: ${seconds}: "
- fn_print_ok_eol_nl
- fn_script_log_pass "Graceful: CTRL+c: OK: ${seconds} seconds"
- break
- fi
- sleep 1
- fn_print_dots "Graceful: CTRL+c: ${seconds}"
- done
- check_status.sh
- if [ "${status}" != "0" ]; then
- fn_print_error "Graceful: CTRL+c: "
- fn_print_fail_eol_nl
- fn_script_log_error "Graceful: CTRL+c: FAIL"
- fi
-}
-
-# Attempts graceful shutdown by sending a specified command.
-# Usage: fn_stop_graceful_cmd "console_command" "timeout_in_seconds"
-# e.g.: fn_stop_graceful_cmd "quit" "30"
-fn_stop_graceful_cmd() {
- fn_print_dots "Graceful: sending \"${1}\""
- fn_script_log_info "Graceful: sending \"${1}\""
- # Sends specific stop command.
- tmux -L "${sessionname}" send -t "${sessionname}" ENTER "${1}" ENTER > /dev/null 2>&1
- # Waits up to ${seconds} seconds giving the server time to shutdown gracefully.
- for ((seconds = 1; seconds <= ${2}; seconds++)); do
- check_status.sh
- if [ "${status}" == "0" ]; then
- fn_print_ok "Graceful: sending \"${1}\": ${seconds}: "
- fn_print_ok_eol_nl
- fn_script_log_pass "Graceful: sending \"${1}\": OK: ${seconds} seconds"
- break
- fi
- sleep 1
- fn_print_dots "Graceful: sending \"${1}\": ${seconds}"
- done
- check_status.sh
- if [ "${status}" != "0" ]; then
- fn_print_error "Graceful: sending \"${1}\": "
- fn_print_fail_eol_nl
- fn_script_log_error "Graceful: sending \"${1}\": FAIL"
- fi
-}
-
-# Attempts graceful shutdown of goldsrc using rcon 'quit' command.
-# There is only a 3 second delay before a forced a tmux shutdown
-# as GoldSrc servers 'quit' command does a restart rather than shutdown.
-fn_stop_graceful_goldsrc() {
- fn_print_dots "Graceful: sending \"quit\""
- fn_script_log_info "Graceful: sending \"quit\""
- # sends quit
- tmux -L "${sessionname}" send -t "${sessionname}" quit ENTER > /dev/null 2>&1
- # Waits 3 seconds as goldsrc servers restart with the quit command.
- for seconds in {1..3}; do
- sleep 1
- fn_print_dots "Graceful: sending \"quit\": ${seconds}"
- done
- fn_print_ok "Graceful: sending \"quit\": ${seconds}: "
- fn_print_ok_eol_nl
- fn_script_log_pass "Graceful: sending \"quit\": OK: ${seconds} seconds"
-}
-
-# telnet command for sdtd graceful shutdown.
-fn_stop_graceful_sdtd_telnet() {
- if [ -z "${telnetpass}" ] || [ "${telnetpass}" == "NOT SET" ]; then
- sdtd_telnet_shutdown=$(expect -c '
- proc abort {} {
- puts "Timeout or EOF\n"
- exit 1
- }
- spawn telnet '"${telnetip}"' '"${telnetport}"'
- expect {
- "session." { send "shutdown\r" }
- default abort
- }
- expect { eof }
- puts "Completed.\n"
- ')
- else
- sdtd_telnet_shutdown=$(expect -c '
- proc abort {} {
- puts "Timeout or EOF\n"
- exit 1
- }
- spawn telnet '"${telnetip}"' '"${telnetport}"'
- expect {
- "password:" { send "'"${telnetpass}"'\r" }
- default abort
- }
- expect {
- "session." { send "shutdown\r" }
- default abort
- }
- expect { eof }
- puts "Completed.\n"
- ')
- fi
-}
-
-# Attempts graceful shutdown of 7 Days To Die using telnet.
-fn_stop_graceful_sdtd() {
- fn_print_dots "Graceful: telnet"
- fn_script_log_info "Graceful: telnet"
- if [ "${telnetenabled}" == "false" ]; then
- fn_print_info_nl "Graceful: telnet: DISABLED: Enable in ${servercfg}"
- elif [ "$(command -v expect 2> /dev/null)" ]; then
- # Tries to shutdown with both localhost and server IP.
- for telnetip in 127.0.0.1 ${ip}; do
- fn_print_dots "Graceful: telnet: ${telnetip}:${telnetport}"
- fn_script_log_info "Graceful: telnet: ${telnetip}:${telnetport}"
- fn_stop_graceful_sdtd_telnet
- completed=$(echo -en "\n ${sdtd_telnet_shutdown}" | grep "Completed.")
- refused=$(echo -en "\n ${sdtd_telnet_shutdown}" | grep "Timeout or EOF")
- if [ "${refused}" ]; then
- fn_print_error "Graceful: telnet: ${telnetip}:${telnetport} : "
- fn_print_fail_eol_nl
- fn_script_log_error "Graceful: telnet: ${telnetip}:${telnetport} : FAIL"
- elif [ "${completed}" ]; then
- break
- fi
- done
-
- # If telnet shutdown was successful will use telnet again to check
- # the connection has closed, confirming that the tmux session can now be killed.
- if [ "${completed}" ]; then
- for seconds in {1..30}; do
- fn_stop_graceful_sdtd_telnet
- refused=$(echo -en "\n ${sdtd_telnet_shutdown}" | grep "Timeout or EOF")
- if [ "${refused}" ]; then
- fn_print_ok "Graceful: telnet: ${telnetip}:${telnetport} : "
- fn_print_ok_eol_nl
- fn_script_log_pass "Graceful: telnet: ${telnetip}:${telnetport} : ${seconds} seconds"
- break
- fi
- sleep 1
- fn_print_dots "Graceful: telnet: ${seconds}"
- done
- # If telnet shutdown fails tmux shutdown will be used, this risks loss of world save.
- else
- if [ "${refused}" ]; then
- fn_print_error "Graceful: telnet: "
- fn_print_fail_eol_nl
- fn_script_log_error "Graceful: telnet: ${telnetip}:${telnetport} : FAIL"
- else
- fn_print_error_nl "Graceful: telnet: Unknown error"
- fn_script_log_error "Graceful: telnet: Unknown error"
- fi
- echo -en "\n" | tee -a "${lgsmlog}"
- echo -en "Telnet output:" | tee -a "${lgsmlog}"
- echo -en "\n ${sdtd_telnet_shutdown}" | tee -a "${lgsmlog}"
- echo -en "\n\n" | tee -a "${lgsmlog}"
- fi
- else
- fn_print_warn "Graceful: telnet: expect not installed: "
- fn_print_fail_eol_nl
- fn_script_log_warn "Graceful: telnet: expect not installed: FAIL"
- fi
-}
-
-# Attempts graceful shutdown by sending /save /stop.
-fn_stop_graceful_avorion() {
- fn_print_dots "Graceful: /save /stop"
- fn_script_log_info "Graceful: /save /stop"
- # Sends /save.
- tmux -L "${sessionname}" send-keys -t "${sessionname}" /save ENTER > /dev/null 2>&1
- sleep 5
- # Sends /quit.
- tmux -L "${sessionname}" send-keys -t "${sessionname}" /stop ENTER > /dev/null 2>&1
- # Waits up to 30 seconds giving the server time to shutdown gracefuly.
- for seconds in {1..30}; do
- check_status.sh
- if [ "${status}" == "0" ]; then
- fn_print_ok "Graceful: /save /stop: ${seconds}: "
- fn_print_ok_eol_nl
- fn_script_log_pass "Graceful: /save /stop: OK: ${seconds} seconds"
- break
- fi
- sleep 1
- fn_print_dots "Graceful: /save /stop: ${seconds}"
- done
- check_status.sh
- if [ "${status}" != "0" ]; then
- fn_print_error "Graceful: /save /stop: "
- fn_print_fail_eol_nl
- fn_script_log_error "Graceful: /save /stop: FAIL"
- fi
-}
-
-fn_stop_graceful_select() {
- if [ "${stopmode}" == "1" ]; then
- fn_stop_tmux
- elif [ "${stopmode}" == "2" ]; then
- fn_stop_graceful_ctrlc
- elif [ "${stopmode}" == "3" ]; then
- fn_stop_graceful_cmd "quit" 30
- elif [ "${stopmode}" == "4" ]; then
- fn_stop_graceful_cmd "quit" 120
- elif [ "${stopmode}" == "5" ]; then
- fn_stop_graceful_cmd "stop" 30
- elif [ "${stopmode}" == "6" ]; then
- fn_stop_graceful_cmd "q" 30
- elif [ "${stopmode}" == "7" ]; then
- fn_stop_graceful_cmd "exit" 30
- elif [ "${stopmode}" == "8" ]; then
- fn_stop_graceful_sdtd
- elif [ "${stopmode}" == "9" ]; then
- fn_stop_graceful_goldsrc
- elif [ "${stopmode}" == "10" ]; then
- fn_stop_graceful_avorion
- elif [ "${stopmode}" == "11" ]; then
- fn_stop_graceful_cmd "end" 30
- elif [ "${stopmode}" == "12" ]; then
- fn_stop_graceful_cmd "shutdown" 30
- fi
-}
-
-fn_stop_tmux() {
- fn_print_dots "${servername}"
- fn_script_log_info "tmux kill-session: ${sessionname}: ${servername}"
- # Kill tmux session.
- tmux -L "${sessionname}" kill-session -t "${sessionname}" > /dev/null 2>&1
- sleep 0.5
- check_status.sh
- if [ "${status}" == "0" ]; then
- fn_print_ok_nl "${servername}"
- fn_script_log_pass "Stopped ${servername}"
- else
- fn_print_fail_nl "Unable to stop ${servername}"
- fn_script_log_fatal "Unable to stop ${servername}"
- fi
-}
-
-# Checks if the server is already stopped.
-fn_stop_pre_check() {
- if [ "${status}" == "0" ]; then
- fn_print_info_nl "${servername} is already stopped"
- fn_script_log_error "${servername} is already stopped"
- else
- # Select graceful shutdown.
- fn_stop_graceful_select
- fi
- # Check status again, a kill tmux session if graceful shutdown failed.
- check_status.sh
- if [ "${status}" != "0" ]; then
- fn_stop_tmux
- fi
-}
-
-check.sh
-fn_print_dots "${servername}"
-
-info_game.sh
-fn_stop_pre_check
-# Remove lockfile.
-if [ -f "${lockdir}/${selfname}.lock" ]; then
- rm -f "${lockdir:?}/${selfname}.lock"
-fi
-
-if [ -z "${exitbypass}" ]; then
- core_exit.sh
-fi
diff --git a/lgsm/functions/command_test_alert.sh b/lgsm/functions/command_test_alert.sh
deleted file mode 100644
index 7fe61e48a9..0000000000
--- a/lgsm/functions/command_test_alert.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_test_alert.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Sends a test alert.
-
-commandname="TEST-ALERT"
-commandaction="Sending Alert"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_firstcommand_set
-
-fn_print_dots "${servername}"
-check.sh
-info_game.sh
-alert="test"
-alert.sh
-
-core_exit.sh
diff --git a/lgsm/functions/command_ts3_server_pass.sh b/lgsm/functions/command_ts3_server_pass.sh
deleted file mode 100644
index be0816d15f..0000000000
--- a/lgsm/functions/command_ts3_server_pass.sh
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_ts3_server_pass.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Changes TS3 serveradmin password.
-
-commandname="CHANGE-PASSWORD"
-commandaction="Changing password"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_firstcommand_set
-
-fn_serveradmin_password_prompt() {
- fn_print_header
- fn_print_information_nl "You are about to change the ${gamename} ServerAdmin password."
- fn_print_warning_nl "${gamename} will restart during this process."
- echo -e ""
- if ! fn_prompt_yn "Continue?" Y; then
- exitcode=0
- core_exit.sh
- fi
- fn_script_log_info "Initiating ${gamename} ServerAdmin password change"
- read -rp "Enter new password: " newpassword
- fn_print_info_nl "Changing password"
- fn_script_log_info "Changing password"
-}
-
-fn_serveradmin_password_set() {
- # Start server in "new password mode".
- ts3serverpass="1"
- exitbypass="1"
- command_start.sh
- fn_firstcommand_reset
- fn_print_ok_nl "New password applied"
- fn_script_log_pass "New ServerAdmin password applied"
-}
-
-# Running functions.
-check.sh
-fn_serveradmin_password_prompt
-if [ "${status}" != "0" ]; then
- # Stop any running server.
- exitbypass="1"
- command_stop.sh
- fn_firstcommand_reset
- fn_serveradmin_password_set
- parms="serveradmin_password=\"${newpassword}\" inifile=\"${servercfgfullpath}\" > /dev/null 2>&1"
- ts3serverpass="0"
- command_restart.sh
- fn_firstcommand_reset
-else
- fn_serveradmin_password_set
- command_stop.sh
- fn_firstcommand_reset
-fi
-
-core_exit.sh
diff --git a/lgsm/functions/command_update.sh b/lgsm/functions/command_update.sh
deleted file mode 100644
index ae5c2065c6..0000000000
--- a/lgsm/functions/command_update.sh
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_update.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Handles updating of servers.
-
-commandname="UPDATE"
-commandaction="Updating"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_firstcommand_set
-
-fn_print_dots ""
-check.sh
-core_logs.sh
-check_last_update.sh
-
-if [ "${shortname}" == "ts3" ]; then
- update_ts3.sh
-elif [ "${shortname}" == "mc" ]; then
- update_minecraft.sh
-elif [ "${shortname}" == "mcb" ]; then
- update_minecraft_bedrock.sh
-elif [ "${shortname}" == "pmc" ] || [ "${shortname}" == "vpmc" ] || [ "${shortname}" == "wmc" ]; then
- update_papermc.sh
-elif [ "${shortname}" == "fctr" ]; then
- update_factorio.sh
-elif [ "${shortname}" == "mta" ]; then
- update_mta.sh
-elif [ "${shortname}" == "jk2" ]; then
- update_jediknight2.sh
-elif [ "${shortname}" == "vints" ]; then
- update_vintagestory.sh
-elif [ "${shortname}" == "ut99" ]; then
- update_ut99.sh
-else
- update_steamcmd.sh
-fi
-
-core_exit.sh
diff --git a/lgsm/functions/command_update_linuxgsm.sh b/lgsm/functions/command_update_linuxgsm.sh
deleted file mode 100644
index 569bc7cdb9..0000000000
--- a/lgsm/functions/command_update_linuxgsm.sh
+++ /dev/null
@@ -1,236 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_update_linuxgsm.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Deletes the functions dir to allow re-downloading of functions from GitHub.
-
-commandname="UPDATE-LGSM"
-commandaction="Updating LinuxGSM"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_firstcommand_set
-
-check.sh
-info_distro.sh
-
-fn_print_dots ""
-fn_script_log_info "Updating LinuxGSM"
-
-fn_print_dots "Selecting repo"
-fn_script_log_info "Selecting repo"
-# Select remotereponame
-curl --connect-timeout 10 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/linuxgsm.sh" 1> /dev/null
-if [ $? != "0" ]; then
- curl --connect-timeout 10 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/linuxgsm.sh" 1> /dev/null
- if [ $? != "0" ]; then
- fn_print_fail_nl "Selecting repo: Unable to to access GitHub or Bitbucket repositories"
- fn_script_log_fatal "Selecting repo: Unable to to access GitHub or Bitbucket repositories"
- core_exit.sh
- else
- remotereponame="Bitbucket"
- fn_print_ok_nl "Selecting repo: ${remotereponame}"
- fi
-else
- remotereponame="GitHub"
- fn_print_ok_nl "Selecting repo: ${remotereponame}"
-fi
-
-# Check linuxsm.sh
-echo -en "checking ${remotereponame} linuxgsm.sh...\c"
-if [ "${remotereponame}" == "GitHub" ]; then
- curl --connect-timeout 10 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/linuxgsm.sh" 1> /dev/null
-else
- curl --connect-timeout 10 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/linuxgsm.sh" 1> /dev/null
-fi
-if [ $? != "0" ]; then
- fn_print_fail_eol_nl
- fn_script_log_fatal "Checking ${remotereponame} linuxgsm.sh"
- fn_script_log_fatal "Curl returned error: $?"
- core_exit.sh
-fi
-
-if [ "${remotereponame}" == "GitHub" ]; then
- tmp_script_diff=$(diff "${tmpdir}/linuxgsm.sh" <(curl --connect-timeout 10 -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/linuxgsm.sh"))
-else
- tmp_script_diff=$(diff "${tmpdir}/linuxgsm.sh" <(curl --connect-timeout 10 -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/linuxgsm.sh"))
-fi
-
-if [ "${tmp_script_diff}" != "" ]; then
- fn_print_update_eol_nl
- fn_script_log_update "Checking ${remotereponame} linuxgsm.sh"
- rm -f "${tmpdir:?}/linuxgsm.sh"
- fn_fetch_file_github "" "linuxgsm.sh" "${tmpdir}" "nochmodx" "norun" "noforcedl" "nohash"
-else
- fn_print_ok_eol_nl
- fn_script_log_pass "Checking ${remotereponame} linuxgsm.sh"
-fi
-
-# Check gameserver.sh
-# Compare gameserver.sh against linuxgsm.sh in the tmp dir.
-# Ignoring server specific vars.
-echo -en "checking ${selfname}...\c"
-fn_script_log_info "Checking ${selfname}"
-script_diff=$(diff <(sed '\/shortname/d;\/gameservername/d;\/gamename/d;\/githubuser/d;\/githubrepo/d;\/githubbranch/d' "${tmpdir}/linuxgsm.sh") <(sed '\/shortname/d;\/gameservername/d;\/gamename/d;\/githubuser/d;\/githubrepo/d;\/githubbranch/d' "${rootdir}/${selfname}"))
-if [ "${script_diff}" != "" ]; then
- fn_print_update_eol_nl
- fn_script_log_update "Checking ${selfname}"
- echo -en "backup ${selfname}...\c"
- fn_script_log_info "Backup ${selfname}"
- if [ ! -d "${backupdir}/script" ]; then
- mkdir -p "${backupdir}/script"
- fi
- cp "${rootdir}/${selfname}" "${backupdir}/script/${selfname}-$(date +"%m_%d_%Y_%M").bak"
- if [ $? != 0 ]; then
- fn_print_fail_eol_nl
- fn_script_log_fatal "Backup ${selfname}"
- core_exit.sh
- else
- fn_print_ok_eol_nl
- fn_script_log_pass "Backup ${selfname}"
- echo -e "backup location ${backupdir}/script/${selfname}-$(date +"%m_%d_%Y_%M").bak"
- fn_script_log_pass "Backup location ${backupdir}/script/${selfname}-$(date +"%m_%d_%Y_%M").bak"
- fi
-
- echo -en "copying ${selfname}...\c"
- fn_script_log_info "copying ${selfname}"
- cp "${tmpdir}/linuxgsm.sh" "${rootdir}/${selfname}"
- sed -i "s+shortname=\"core\"+shortname=\"${shortname}\"+g" "${rootdir}/${selfname}"
- sed -i "s+gameservername=\"core\"+gameservername=\"${gameservername}\"+g" "${rootdir}/${selfname}"
- sed -i "s+gamename=\"core\"+gamename=\"${gamename}\"+g" "${rootdir}/${selfname}"
- sed -i "s+githubuser=\"GameServerManagers\"+githubuser=\"${githubuser}\"+g" "${rootdir}/${selfname}"
- sed -i "s+githubrepo=\"LinuxGSM\"+githubrepo=\"${githubrepo}\"+g" "${rootdir}/${selfname}"
- sed -i "s+githubbranch=\"master\"+githubbranch=\"${githubbranch}\"+g" "${rootdir}/${selfname}"
-
- if [ $? != "0" ]; then
- fn_print_fail_eol_nl
- fn_script_log_fatal "copying ${selfname}"
- core_exit.sh
- else
- fn_print_ok_eol_nl
- fn_script_log_pass "copying ${selfname}"
- fi
-else
- fn_print_ok_eol_nl
- fn_script_log_info "Checking ${selfname}"
-fi
-
-# Check _default.cfg.
-echo -en "checking ${remotereponame} config _default.cfg...\c"
-fn_script_log_info "Checking ${remotereponame} config _default.cfg"
-if [ "${remotereponame}" == "GitHub" ]; then
- curl --connect-timeout 10 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg" 1> /dev/null
-else
- curl --connect-timeout 10 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg" 1> /dev/null
-fi
-if [ $? != "0" ]; then
- fn_print_fail_eol_nl
- fn_script_log_fatal "Checking ${remotereponame} config _default.cfg"
- fn_script_log_fatal "Curl returned error: $?"
- core_exit.sh
-fi
-
-if [ "${remotereponame}" == "GitHub" ]; then
- config_file_diff=$(diff "${configdirdefault}/config-lgsm/${gameservername}/_default.cfg" <(curl --connect-timeout 10 -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg"))
-else
- config_file_diff=$(diff "${configdirdefault}/config-lgsm/${gameservername}/_default.cfg" <(curl --connect-timeout 10 -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg"))
-fi
-
-if [ "${config_file_diff}" != "" ]; then
- fn_print_update_eol_nl
- fn_script_log_update "Checking ${remotereponame} config _default.cfg"
- rm -f "${configdirdefault:?}/config-lgsm/${gameservername:?}/_default.cfg"
- fn_fetch_file_github "lgsm/config-default/config-lgsm/${gameservername}" "_default.cfg" "${configdirdefault}/config-lgsm/${gameservername}" "nochmodx" "norun" "noforce" "nohash"
- alert="config"
- alert.sh
-else
- fn_print_ok_eol_nl
- fn_script_log_pass "Checking ${remotereponame} config _default.cfg"
-fi
-
-# Check distro csv. ${datadir}/${distroid}-${distroversioncsv}.csv
-if [ -f "${datadir}/${distroid}-${distroversioncsv}.csv" ]; then
- echo -en "checking ${remotereponame} config ${distroid}-${distroversioncsv}.csv...\c"
- fn_script_log_info "Checking ${remotereponame} ${distroid}-${distroversioncsv}.csv"
- if [ "${remotereponame}" == "GitHub" ]; then
- curl --connect-timeout 10 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv" 1> /dev/null
- else
- curl --connect-timeout 10 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv" 1> /dev/null
- fi
- if [ $? != "0" ]; then
- fn_print_fail_eol_nl
- fn_script_log_fatal "Checking ${remotereponame} ${distroid}-${distroversioncsv}.csv"
- fn_script_log_fatal "Curl returned error: $?"
- core_exit.sh
- fi
-
- if [ "${remotereponame}" == "GitHub" ]; then
- config_file_diff=$(diff "${datadir}/${distroid}-${distroversioncsv}.csv" <(curl --connect-timeout 10 -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv"))
- else
- config_file_diff=$(diff "${datadir}/${distroid}-${distroversioncsv}.csv" <(curl --connect-timeout 10 -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv"))
- fi
-
- if [ "${config_file_diff}" != "" ]; then
- fn_print_update_eol_nl
- fn_script_log_update "Checking ${remotereponame} ${distroid}-${distroversioncsv}.csv"
- rm -f "${datadir:?}/${distroid}-${distroversioncsv}.csv"
- fn_fetch_file_github "lgsm/data" "${distroid}-${distroversioncsv}.csv" "${datadir}" "nochmodx" "norun" "noforce" "nohash"
- else
- fn_print_ok_eol_nl
- fn_script_log_pass "Checking ${remotereponame} ${distroid}-${distroversioncsv}.csv"
- fi
-fi
-# Check and update modules.
-if [ -n "${functionsdir}" ]; then
- if [ -d "${functionsdir}" ]; then
- (
- cd "${functionsdir}" || exit
- for functionfile in *; do
- # check if module exists in the repo and remove if missing.
- # commonly used if module names change.
- echo -en "checking ${remotereponame} module ${functionfile}...\c"
- github_file_url_dir="lgsm/functions"
- if [ "${remotereponame}" == "GitHub" ]; then
- curl --connect-timeout 10 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_file_url_dir}/${functionfile}" 1> /dev/null
- else
- curl --connect-timeout 10 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/${github_file_url_dir}/${functionfile}" 1> /dev/null
- fi
- if [ $? != 0 ]; then
- fn_print_error_eol_nl
- fn_script_log_error "Checking ${remotereponame} module ${functionfile}"
- echo -en "removing module ${functionfile}...\c"
- if ! rm -f "${functionfile:?}"; then
- fn_print_fail_eol_nl
- fn_script_log_fatal "Removing module ${functionfile}"
- core_exit.sh
- else
- fn_print_ok_eol_nl
- fn_script_log_pass "Removing module ${functionfile}"
- fi
- else
- # compare file
- if [ "${remotereponame}" == "GitHub" ]; then
- function_file_diff=$(diff "${functionsdir}/${functionfile}" <(curl --connect-timeout 10 -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_file_url_dir}/${functionfile}"))
- else
- function_file_diff=$(diff "${functionsdir}/${functionfile}" <(curl --connect-timeout 10 -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/${github_file_url_dir}/${functionfile}"))
- fi
-
- # results
- if [ "${function_file_diff}" != "" ]; then
- fn_print_update_eol_nl
- fn_script_log_update "Checking ${remotereponame} module ${functionfile}"
- rm -rf "${functionsdir:?}/${functionfile}"
- fn_update_function
- else
- fn_print_ok_eol_nl
- fn_script_log_pass "Checking ${remotereponame} module ${functionfile}"
- fi
- fi
- done
- )
- fi
-fi
-
-fn_print_ok_nl "Updating functions"
-fn_script_log_pass "Updating functions"
-
-core_exit.sh
diff --git a/lgsm/functions/command_validate.sh b/lgsm/functions/command_validate.sh
deleted file mode 100644
index 15257a3e28..0000000000
--- a/lgsm/functions/command_validate.sh
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_validate.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Runs a server validation.
-
-commandname="VALIDATE"
-commandaction="Validating"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_firstcommand_set
-
-fn_validate() {
- fn_print_warn "Validate might overwrite some customised files"
- fn_script_log_warn "${commandaction} server: Validate might overwrite some customised files"
- totalseconds=3
- for seconds in {3..1}; do
- fn_print_warn "Validate might overwrite some customised files: ${totalseconds}"
- totalseconds=$((totalseconds - 1))
- sleep 1
- if [ "${seconds}" == "0" ]; then
- break
- fi
- done
- fn_print_warn_nl "Validate might overwrite some customised files"
-
- fn_dl_steamcmd
-}
-
-# The location where the builds are checked and downloaded.
-remotelocation="SteamCMD"
-check.sh
-
-fn_print_dots "${remotelocation}"
-
-if [ "${status}" != "0" ]; then
- fn_print_restart_warning
- exitbypass=1
- command_stop.sh
- fn_firstcommand_reset
- fn_validate
- exitbypass=1
- command_start.sh
- fn_firstcommand_reset
-else
- fn_validate
-fi
-
-core_exit.sh
diff --git a/lgsm/functions/command_wipe.sh b/lgsm/functions/command_wipe.sh
deleted file mode 100644
index e1677e8276..0000000000
--- a/lgsm/functions/command_wipe.sh
+++ /dev/null
@@ -1,183 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_backup.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Wipes server data, useful after updates for some games like Rust.
-
-commandname="WIPE"
-commandaction="Wiping"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_firstcommand_set
-
-# Provides an exit code upon error.
-fn_wipe_exit_code() {
- exitcode=$?
- if [ "${exitcode}" != 0 ]; then
- fn_print_fail_eol_nl
- core_exit.sh
- else
- fn_print_ok_eol_nl
- fi
-}
-
-# Removes files to wipe server.
-fn_wipe_files() {
- fn_print_start_nl "${wipetype}"
- fn_script_log_info "${wipetype}"
-
- # Remove Map files
- if [ -n "${serverwipe}" ] || [ -n "${mapwipe}" ]; then
- if [ -n "$(find "${serveridentitydir}" -type f -name "*.map")" ]; then
- echo -en "removing .map file(s)..."
- fn_script_log_info "removing *.map file(s)"
- fn_sleep_time
- find "${serveridentitydir:?}" -type f -name "*.map" -printf "%f\n" >> "${lgsmlog}"
- find "${serveridentitydir:?}" -type f -name "*.map" -delete | tee -a "${lgsmlog}"
- fn_wipe_exit_code
- else
- echo -e "no .map file(s) to remove"
- fn_sleep_time
- fn_script_log_pass "no .map file(s) to remove"
- fi
- fi
- # Remove Save files.
- if [ -n "${serverwipe}" ] || [ -n "${mapwipe}" ]; then
- if [ -n "$(find "${serveridentitydir}" -type f -name "*.sav*")" ]; then
- echo -en "removing .sav file(s)..."
- fn_script_log_info "removing .sav file(s)"
- fn_sleep_time
- find "${serveridentitydir:?}" -type f -name "*.sav*" -printf "%f\n" >> "${lgsmlog}"
- find "${serveridentitydir:?}" -type f -name "*.sav*" -delete
- fn_wipe_exit_code
- else
- echo -e "no .sav file(s) to remove"
- fn_script_log_pass "no .sav file(s) to remove"
- fn_sleep_time
- fi
- fi
- # Remove db files for full wipe.
- # Excluding player.tokens.db for Rust+.
- if [ -n "${serverwipe}" ]; then
- if [ -n "$(find "${serveridentitydir}" -type f ! -name 'player.tokens.db' -name "*.db")" ]; then
- echo -en "removing .db file(s)..."
- fn_script_log_info "removing .db file(s)"
- fn_sleep_time
- find "${serveridentitydir:?}" -type f ! -name 'player.tokens.db' -name "*.db" -printf "%f\n" >> "${lgsmlog}"
- find "${serveridentitydir:?}" -type f ! -name 'player.tokens.db' -name "*.db" -delete
- fn_wipe_exit_code
- else
- echo -e "no .db file(s) to remove"
- fn_sleep_time
- fn_script_log_pass "no .db file(s) to remove"
- fi
- fi
-}
-
-fn_map_wipe_warning() {
- fn_print_warn "Map wipe will reset the map data and keep blueprint data"
- fn_script_log_warn "Map wipe will reset the map data and keep blueprint data"
- totalseconds=3
- for seconds in {3..1}; do
- fn_print_warn "Map wipe will reset the map data and keep blueprint data: ${totalseconds}"
- totalseconds=$((totalseconds - 1))
- sleep 1
- if [ "${seconds}" == "0" ]; then
- break
- fi
- done
- fn_print_warn_nl "Map wipe will reset the map data and keep blueprint data"
-}
-
-fn_full_wipe_warning() {
- fn_print_warn "Server wipe will reset the map data and remove blueprint data"
- fn_script_log_warn "Server wipe will reset the map data and remove blueprint data"
- totalseconds=3
- for seconds in {3..1}; do
- fn_print_warn "Server wipe will reset the map data and remove blueprint data: ${totalseconds}"
- totalseconds=$((totalseconds - 1))
- sleep 1
- if [ "${seconds}" == "0" ]; then
- break
- fi
- done
- fn_print_warn_nl "Server wipe will reset the map data and remove blueprint data"
-}
-
-# Will change the seed if the seed is not defined by the user.
-fn_wipe_random_seed() {
- if [ -f "${datadir}/${selfname}-seed.txt" ] && [ -n "${randomseed}" ]; then
- shuf -i 1-2147483647 -n 1 > "${datadir}/${selfname}-seed.txt"
- seed=$(cat "${datadir}/${selfname}-seed.txt")
- randomseed=1
- echo -en "generating new random seed (${cyan}${seed}${default})..."
- fn_script_log_pass "Generating new random seed (${cyan}${seed}${default})"
- fn_sleep_time
- fn_print_ok_eol_nl
- fi
-}
-
-# A summary of what wipe is going to do.
-fn_wipe_details() {
- fn_print_information_nl "Wipe does not remove Rust+ data."
- echo -en "* Wipe map data: "
- if [ -n "${serverwipe}" ] || [ -n "${mapwipe}" ]; then
- fn_print_yes_eol_nl
- else
- fn_print_no_eol_nl
- fi
-
- echo -en "* Wipe blueprint data: "
- if [ -n "${serverwipe}" ]; then
- fn_print_yes_eol_nl
- else
- fn_print_no_eol_nl
- fi
-
- echo -en "* Change Procedural Map seed: "
- if [ -n "${randomseed}" ]; then
- fn_print_yes_eol_nl
- else
- fn_print_no_eol_nl
- fi
-}
-
-fn_print_dots ""
-check.sh
-fix_rust.sh
-
-# Check if there is something to wipe.
-if [ -n "$(find "${serveridentitydir}" -type f -name "*.map")" ] || [ -n "$(find "${serveridentitydir}" -type f -name "*.sav*")" ] && [ -n "$(find "${serveridentitydir}" -type f ! -name 'player.tokens.db' -name "*.db")" ]; then
- if [ -n "${serverwipe}" ]; then
- wipetype="Full wipe"
- fn_full_wipe_warning
- fn_wipe_details
- elif [ -n "${mapwipe}" ]; then
- wipetype="Map wipe"
- fn_map_wipe_warning
- fn_wipe_details
- fi
- check_status.sh
- if [ "${status}" != "0" ]; then
- fn_print_restart_warning
- exitbypass=1
- command_stop.sh
- fn_firstcommand_reset
- fn_wipe_files
- fn_wipe_random_seed
- fn_print_complete_nl "${wipetype}"
- fn_script_log_pass "${wipetype}"
- exitbypass=1
- command_start.sh
- fn_firstcommand_reset
- else
- fn_wipe_files
- fn_wipe_random_seed
- fn_print_complete_nl "${wipetype}"
- fn_script_log_pass "${wipetype}"
- fi
-else
- fn_print_ok_nl "Wipe not required"
- fn_script_log_pass "Wipe not required"
-fi
-core_exit.sh
diff --git a/lgsm/functions/compress_unreal2_maps.sh b/lgsm/functions/compress_unreal2_maps.sh
deleted file mode 100644
index 0c32d3c77b..0000000000
--- a/lgsm/functions/compress_unreal2_maps.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/bash
-# LinuxGSM compress_unreal2_maps.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Compresses unreal maps.
-
-commandname="MAP-COMPRESSOR"
-commandaction="Compressing maps"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_firstcommand_set
-
-check.sh
-fn_print_header
-echo -e "Will compress all maps in:"
-echo -e ""
-pwd
-echo -e ""
-echo -e "Compressed maps saved to:"
-echo -e ""
-echo -e "${compressedmapsdir}"
-echo -e ""
-if ! fn_prompt_yn "Start compression?" Y; then
- exitcode=0
- core_exit.sh
-fi
-mkdir -pv "${compressedmapsdir}" > /dev/null 2>&1
-rm -rfv "${serverfiles:?}/Maps/"*.ut2.uz2
-cd "${systemdir}" || exit
-for map in "${serverfiles}/Maps/"*; do
- ./ucc-bin compress "${map}" --nohomedir
-done
-mv -fv "${serverfiles}/Maps/"*.ut2.uz2 "${compressedmapsdir}"
-
-core_exit.sh
diff --git a/lgsm/functions/compress_ut99_maps.sh b/lgsm/functions/compress_ut99_maps.sh
deleted file mode 100644
index 9aa074ba9a..0000000000
--- a/lgsm/functions/compress_ut99_maps.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/bash
-# LinuxGSM compress_ut99_maps.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Compresses unreal maps.
-
-commandname="MAP-COMPRESSOR"
-commandaction="Compressing maps"
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_firstcommand_set
-
-check.sh
-fn_print_header
-echo -e "Will compress all maps in:"
-echo -e ""
-pwd
-echo -e ""
-echo -e "Compressed maps saved to:"
-echo -e ""
-echo -e "${compressedmapsdir}"
-echo -e ""
-if ! fn_prompt_yn "Start compression?" Y; then
- exitcode=0
- core_exit.sh
-fi
-mkdir -pv "${compressedmapsdir}" > /dev/null 2>&1
-rm -rfv "${serverfiles:?}/Maps/"*.unr.uz
-cd "${systemdir}" || exit
-for map in "${serverfiles}/Maps/"*; do
- ./ucc-bin compress "${map}" --nohomedir
-done
-mv -fv "${serverfiles}/Maps/"*.unr.uz "${compressedmapsdir}"
-
-core_exit.sh
diff --git a/lgsm/functions/core_dl.sh b/lgsm/functions/core_dl.sh
deleted file mode 100644
index 53a60cc1ad..0000000000
--- a/lgsm/functions/core_dl.sh
+++ /dev/null
@@ -1,625 +0,0 @@
-#!/bin/bash
-# LinuxGSM core_dl.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Deals with all downloads for LinuxGSM.
-
-# remote_fileurl: The URL of the file: http://example.com/dl/File.tar.bz2
-# local_filedir: location the file is to be saved: /home/server/lgsm/tmp
-# local_filename: name of file (this can be different from the url name): file.tar.bz2
-# chmodx: Optional, set to "chmodx" to make file executable using chmod +x
-# run: Optional, set run to execute the file after download
-# forcedl: Optional, force re-download of file even if exists
-# hash: Optional, set an hash sum and will compare it against the file.
-#
-# Downloads can be defined in code like so:
-# fn_fetch_file "${remote_fileurl}" "${remote_fileurl_backup}" "${remote_fileurl_name}" "${remote_fileurl_backup_name}" "${local_filedir}" "${local_filename}" "${chmodx}" "${run}" "${forcedl}" "${hash}"
-# fn_fetch_file "http://example.com/file.tar.bz2" "http://example.com/file2.tar.bz2" "file.tar.bz2" "file2.tar.bz2" "/some/dir" "file.tar.bz2" "chmodx" "run" "forcedl" "10cd7353aa9d758a075c600a6dd193fd"
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-fn_dl_steamcmd() {
- fn_print_start_nl "${remotelocation}"
- fn_script_log_info "${commandaction} ${selfname}: ${remotelocation}"
- if [ -n "${branch}" ]; then
- echo -e "Branch: ${branch}"
- fn_script_log_info "Branch: ${branch}"
- fi
- if [ -n "${betapassword}" ]; then
- echo -e "Branch password: ${betapassword}"
- fn_script_log_info "Branch password: ${betapassword}"
- fi
- if [ -d "${steamcmddir}" ]; then
- cd "${steamcmddir}" || exit
- fi
-
- # Unbuffer will allow the output of steamcmd not buffer allowing a smooth output.
- # unbuffer us part of the expect package.
- if [ "$(command -v unbuffer)" ]; then
- unbuffer="unbuffer"
- fi
-
- # Validate will be added as a parameter if required.
- if [ "${commandname}" == "VALIDATE" ] || [ "${commandname}" == "INSTALL" ]; then
- validate="validate"
- fi
-
- # To do error checking for SteamCMD the output of steamcmd will be saved to a log.
- steamcmdlog="${lgsmlogdir}/${selfname}-steamcmd.log"
-
- # clear previous steamcmd log
- if [ -f "${steamcmdlog}" ]; then
- rm -f "${steamcmdlog:?}"
- fi
- counter=0
- while [ "${counter}" == "0" ] || [ "${exitcode}" != "0" ]; do
- counter=$((counter + 1))
- # Select SteamCMD parameters
- # If GoldSrc (appid 90) servers. GoldSrc (appid 90) require extra commands.
- if [ "${appid}" == "90" ]; then
- # If using a specific branch.
- if [ -n "${branch}" ] && [ -n "${betapassword}" ]; then
- ${unbuffer} ${steamcmdcommand} +force_install_dir "${serverfiles}" +login "${steamuser}" "${steampass}" +app_set_config 90 mod "${appidmod}" +app_update "${appid}" -beta "${branch}" -betapassword "${betapassword}" ${validate} +quit | uniq | tee -a "${lgsmlog}" "${steamcmdlog}"
- elif [ -n "${branch}" ]; then
- ${unbuffer} ${steamcmdcommand} +force_install_dir "${serverfiles}" +login "${steamuser}" "${steampass}" +app_set_config 90 mod "${appidmod}" +app_update "${appid}" -beta "${branch}" ${validate} +quit | uniq | tee -a "${lgsmlog}" "${steamcmdlog}"
- else
- ${unbuffer} ${steamcmdcommand} +force_install_dir "${serverfiles}" +login "${steamuser}" "${steampass}" +app_set_config 90 mod "${appidmod}" +app_update "${appid}" ${validate} +quit | uniq | tee -a "${lgsmlog}" "${steamcmdlog}"
- fi
- # Force Windows Platform type.
- elif [ "${steamcmdforcewindows}" == "yes" ]; then
- if [ -n "${branch}" ] && [ -n "${betapassword}" ]; then
- ${unbuffer} ${steamcmdcommand} +@sSteamCmdForcePlatformType windows +force_install_dir "${serverfiles}" +login "${steamuser}" "${steampass}" +app_update "${appid}" -beta "${branch}" -betapassword "${betapassword}" ${validate} +quit | uniq | tee -a "${lgsmlog}" "${steamcmdlog}"
- elif [ -n "${branch}" ]; then
- ${unbuffer} ${steamcmdcommand} +@sSteamCmdForcePlatformType windows +force_install_dir "${serverfiles}" +login "${steamuser}" "${steampass}" +app_update "${appid}" -beta "${branch}" ${validate} +quit | uniq | tee -a "${lgsmlog}" "${steamcmdlog}"
- else
- ${unbuffer} ${steamcmdcommand} +@sSteamCmdForcePlatformType windows +force_install_dir "${serverfiles}" +login "${steamuser}" "${steampass}" +app_update "${appid}" ${validate} +quit | uniq | tee -a "${lgsmlog}" "${steamcmdlog}"
- fi
- # All other servers.
- else
- if [ -n "${branch}" ] && [ -n "${betapassword}" ]; then
- ${unbuffer} ${steamcmdcommand} +force_install_dir "${serverfiles}" +login "${steamuser}" "${steampass}" +app_update "${appid}" -beta "${branch}" -betapassword "${betapassword}" ${validate} +quit | uniq | tee -a "${lgsmlog}" "${steamcmdlog}"
- elif [ -n "${branch}" ]; then
- ${unbuffer} ${steamcmdcommand} +force_install_dir "${serverfiles}" +login "${steamuser}" "${steampass}" +app_update "${appid}" -beta "${branch}" ${validate} +quit | uniq | tee -a "${lgsmlog}" "${steamcmdlog}"
- else
- ${unbuffer} ${steamcmdcommand} +force_install_dir "${serverfiles}" +login "${steamuser}" "${steampass}" +app_update "${appid}" ${validate} +quit | uniq | tee -a "${lgsmlog}" "${steamcmdlog}"
- fi
- fi
-
- # Error checking for SteamCMD. Some errors will loop to try again and some will just exit.
- # Check also if we have more errors than retries to be sure that we do not loop to many times and error out.
- exitcode=$?
- if [ -n "$(grep -i "Error!" "${steamcmdlog}" | tail -1)" ] && [ "$(grep -ic "Error!" "${steamcmdlog}")" -ge "${counter}" ]; then
- # Not enough space.
- if [ -n "$(grep "0x202" "${steamcmdlog}" | tail -1)" ]; then
- fn_print_failure_nl "${commandaction} ${selfname}: ${remotelocation}: Not enough disk space to download server files"
- fn_script_log_fatal "${commandaction} ${selfname}: ${remotelocation}: Not enough disk space to download server files"
- core_exit.sh
- # Not enough space.
- elif [ -n "$(grep "0x212" "${steamcmdlog}" | tail -1)" ]; then
- fn_print_failure_nl "${commandaction} ${selfname}: ${remotelocation}: Not enough disk space to download server files"
- fn_script_log_fatal "${commandaction} ${selfname}: ${remotelocation}: Not enough disk space to download server files"
- core_exit.sh
- # Need tp purchase game.
- elif [ -n "$(grep "No subscription" "${steamcmdlog}" | tail -1)" ]; then
- fn_print_failure_nl "${commandaction} ${selfname}: ${remotelocation}: Steam account does not have a license for the required game"
- fn_script_log_fatal "${commandaction} ${selfname}: ${remotelocation}: Steam account does not have a license for the required game"
- core_exit.sh
- # Two-factor authentication failure
- elif [ -n "$(grep "Two-factor code mismatch" "${steamcmdlog}" | tail -1)" ]; then
- fn_print_failure_nl "${commandaction} ${selfname}: ${remotelocation}: Two-factor authentication failure"
- fn_script_log_fatal "${commandaction} ${selfname}: ${remotelocation}: Two-factor authentication failure"
- core_exit.sh
- # Incorrect Branch password
- elif [ -n "$(grep "Password check for AppId" "${steamcmdlog}" | tail -1)" ]; then
- fn_print_failure_nl "${commandaction} ${selfname}: ${remotelocation}: betapassword is incorrect"
- fn_script_log_fatal "${commandaction} ${selfname}: ${remotelocation}: betapassword is incorrect"
- core_exit.sh
- # Update did not finish.
- elif [ -n "$(grep "0x402" "${steamcmdlog}" | tail -1)" ] || [ -n "$(grep "0x602" "${steamcmdlog}" | tail -1)" ]; then
- fn_print_error2_nl "${commandaction} ${selfname}: ${remotelocation}: Update required but not completed - check network"
- fn_script_log_error "${commandaction} ${selfname}: ${remotelocation}: Update required but not completed - check network"
- else
- fn_print_error2_nl "${commandaction} ${selfname}: ${remotelocation}: Unknown error occured"
- echo -en "Please provide content log to LinuxGSM developers https://linuxgsm.com/steamcmd-error"
- fn_script_log_error "${commandaction} ${selfname}: ${remotelocation}: Unknown error occured"
- fi
- elif [ "${exitcode}" != 0 ]; then
- fn_print_error2_nl "${commandaction} ${selfname}: ${remotelocation}: Exit code: ${exitcode}"
- fn_script_log_error "${commandaction} ${selfname}: ${remotelocation}: Exit code: ${exitcode}"
- else
- fn_print_complete_nl "${commandaction} ${selfname}: ${remotelocation}"
- fn_script_log_pass "${commandaction} ${selfname}: ${remotelocation}"
- fi
-
- if [ "${counter}" -gt "10" ]; then
- fn_print_failure_nl "${commandaction} ${selfname}: ${remotelocation}: Did not complete the download, too many retrys"
- fn_script_log_fatal "${commandaction} ${selfname}: ${remotelocation}: Did not complete the download, too many retrys"
- core_exit.sh
- fi
- done
-}
-
-# Emptys contents of the LinuxGSM tmpdir.
-fn_clear_tmp() {
- echo -en "clearing LinuxGSM tmp directory..."
- if [ -d "${tmpdir}" ]; then
- rm -rf "${tmpdir:?}/"*
- local exitcode=$?
- if [ "${exitcode}" != 0 ]; then
- fn_print_error_eol_nl
- fn_script_log_error "clearing LinuxGSM tmp directory"
- else
- fn_print_ok_eol_nl
- fn_script_log_pass "clearing LinuxGSM tmp directory"
- fi
- fi
-}
-
-fn_dl_hash() {
- # Runs Hash Check if available.
- if [ "${hash}" != "0" ] && [ "${hash}" != "nohash" ] && [ "${hash}" != "nomd5" ]; then
- # MD5
- if [ "${#hash}" == "32" ]; then
- hashbin="md5sum"
- hashtype="MD5"
- # SHA1
- elif [ "${#hash}" == "40" ]; then
- hashbin="sha1sum"
- hashtype="SHA1"
- # SHA256
- elif [ "${#hash}" == "64" ]; then
- hashbin="sha256sum"
- hashtype="SHA256"
- # SHA512
- elif [ "${#hash}" == "128" ]; then
- hashbin="sha512sum"
- hashtype="SHA512"
- else
- fn_script_log_error "hash lengh not known for hash type"
- fn_print_error_nl "hash lengh not known for hash type"
- core_exit.sh
- fi
- echo -en "verifying ${local_filename} with ${hashtype}..."
- fn_sleep_time
- hashsumcmd=$(${hashbin} "${local_filedir}/${local_filename}" | awk '{print $1}')
- if [ "${hashsumcmd}" != "${hash}" ]; then
- fn_print_fail_eol_nl
- echo -e "${local_filename} returned ${hashtype} checksum: ${hashsumcmd}"
- echo -e "expected ${hashtype} checksum: ${hash}"
- fn_script_log_fatal "Verifying ${local_filename} with ${hashtype}"
- fn_script_log_info "${local_filename} returned ${hashtype} checksum: ${hashsumcmd}"
- fn_script_log_info "Expected ${hashtype} checksum: ${hash}"
- core_exit.sh
- else
- fn_print_ok_eol_nl
- fn_script_log_pass "Verifying ${local_filename} with ${hashtype}"
- fn_script_log_info "${local_filename} returned ${hashtype} checksum: ${hashsumcmd}"
- fn_script_log_info "Expected ${hashtype} checksum: ${hash}"
- fi
- fi
-}
-
-# Extracts bzip2, gzip or zip files.
-# Extracts can be defined in code like so:
-# fn_dl_extract "${local_filedir}" "${local_filename}" "${extractdest}" "${extractsrc}"
-# fn_dl_extract "/home/gameserver/lgsm/tmp" "file.tar.bz2" "/home/gamserver/serverfiles"
-fn_dl_extract() {
- local_filedir="${1}"
- local_filename="${2}"
- extractdest="${3}"
- extractsrc="${4}"
- # Extracts archives.
- echo -en "extracting ${local_filename}..."
-
- if [ ! -d "${extractdest}" ]; then
- mkdir "${extractdest}"
- fi
- if [ ! -f "${local_filedir}/${local_filename}" ]; then
- fn_print_fail_eol_nl
- echo -en "file ${local_filedir}/${local_filename} not found"
- fn_script_log_fatal "Extracting ${local_filename}"
- fn_script_log_fatal "File ${local_filedir}/${local_filename} not found"
- core_exit.sh
- fi
- mime=$(file -b --mime-type "${local_filedir}/${local_filename}")
- if [ "${mime}" == "application/gzip" ] || [ "${mime}" == "application/x-gzip" ]; then
- if [ -n "${extractsrc}" ]; then
- extractcmd=$(tar -zxf "${local_filedir}/${local_filename}" -C "${extractdest}" --strip-components=1 "${extractsrc}")
- else
- extractcmd=$(tar -zxf "${local_filedir}/${local_filename}" -C "${extractdest}")
- fi
- elif [ "${mime}" == "application/x-bzip2" ]; then
- if [ -n "${extractsrc}" ]; then
- extractcmd=$(tar -jxf "${local_filedir}/${local_filename}" -C "${extractdest}" --strip-components=1 "${extractsrc}")
- else
- extractcmd=$(tar -jxf "${local_filedir}/${local_filename}" -C "${extractdest}")
- fi
- elif [ "${mime}" == "application/x-xz" ]; then
- if [ -n "${extractsrc}" ]; then
- extractcmd=$(tar -Jxf "${local_filedir}/${local_filename}" -C "${extractdest}" --strip-components=1 "${extractsrc}")
- else
- extractcmd=$(tar -Jxf "${local_filedir}/${local_filename}" -C "${extractdest}")
- fi
- elif [ "${mime}" == "application/zip" ]; then
- if [ -n "${extractsrc}" ]; then
- extractcmd=$(unzip -qoj -d "${extractdest}" "${local_filedir}/${local_filename}" "${extractsrc}"/*)
- else
- extractcmd=$(unzip -qo -d "${extractdest}" "${local_filedir}/${local_filename}")
- fi
- fi
- local exitcode=$?
- if [ "${exitcode}" != 0 ]; then
- fn_print_fail_eol_nl
- fn_script_log_fatal "Extracting ${local_filename}"
- if [ -f "${lgsmlog}" ]; then
- echo -e "${extractcmd}" >> "${lgsmlog}"
- fi
- echo -e "${extractcmd}"
- core_exit.sh
- else
- fn_print_ok_eol_nl
- fn_script_log_pass "Extracting ${local_filename}"
- fi
-}
-
-# Trap to remove file download if canceled before completed.
-fn_fetch_trap() {
- echo -e ""
- echo -en "downloading ${local_filename}..."
- fn_print_canceled_eol_nl
- fn_script_log_info "Downloading ${local_filename}...CANCELED"
- fn_sleep_time
- rm -f "${local_filedir:?}/${local_filename}"
- echo -en "downloading ${local_filename}..."
- fn_print_removed_eol_nl
- fn_script_log_info "Downloading ${local_filename}...REMOVED"
- core_exit.sh
-}
-
-# Will check a file exists and download it. Will not exit if fails to download.
-fn_check_file() {
- remote_fileurl="${1}"
- remote_fileurl_backup="${2}"
- remote_fileurl_name="${3}"
- remote_fileurl_backup_name="${4}"
- remote_filename="${5}"
- # If backup fileurl exists include it.
- if [ -n "${remote_fileurl_backup}" ]; then
- # counter set to 0 to allow second try
- counter=0
- remote_fileurls_array=(remote_fileurl remote_fileurl_backup)
- else
- # counter set to 1 to not allow second try
- counter=1
- remote_fileurls_array=(remote_fileurl)
- fi
- for remote_fileurl_array in "${remote_fileurls_array[@]}"; do
- if [ "${remote_fileurl_array}" == "remote_fileurl" ]; then
- fileurl="${remote_fileurl}"
- fileurl_name="${remote_fileurl_name}"
- elif [ "${remote_fileurl_array}" == "remote_fileurl_backup" ]; then
- fileurl="${remote_fileurl_backup}"
- fileurl_name="${remote_fileurl_backup_name}"
- fi
- counter=$((counter + 1))
- echo -en "checking ${fileurl_name} ${remote_filename}...\c"
- curlcmd=$(curl --output /dev/null --silent --head --fail "${fileurl}" 2>&1)
- local exitcode=$?
-
- # On first try will error. On second try will fail.
- if [ "${exitcode}" != 0 ]; then
- if [ ${counter} -ge 2 ]; then
- fn_print_fail_eol_nl
- if [ -f "${lgsmlog}" ]; then
- fn_script_log_fatal "Checking ${remote_filename}"
- fn_script_log_fatal "${fileurl}"
- checkflag=1
- fi
- else
- fn_print_error_eol_nl
- if [ -f "${lgsmlog}" ]; then
- fn_script_log_error "Checking ${remote_filename}"
- fn_script_log_error "${fileurl}"
- checkflag=2
- fi
- fi
- else
- fn_print_ok_eol
- echo -en "\033[2K\\r"
- if [ -f "${lgsmlog}" ]; then
- fn_script_log_pass "Checking ${remote_filename}"
- checkflag=0
- fi
- break
- fi
- done
-
- if [ -f "${local_filedir}/${local_filename}" ]; then
- fn_dl_hash
- # Execute file if run is set.
- if [ "${run}" == "run" ]; then
- # shellcheck source=/dev/null
- source "${local_filedir}/${local_filename}"
- fi
- fi
-}
-
-fn_fetch_file() {
- remote_fileurl="${1}"
- remote_fileurl_backup="${2}"
- remote_fileurl_name="${3}"
- remote_fileurl_backup_name="${4}"
- local_filedir="${5}"
- local_filename="${6}"
- chmodx="${7:-0}"
- run="${8:-0}"
- forcedl="${9:-0}"
- hash="${10:-0}"
-
- # Download file if missing or download forced.
- if [ ! -f "${local_filedir}/${local_filename}" ] || [ "${forcedl}" == "forcedl" ]; then
- # If backup fileurl exists include it.
- if [ -n "${remote_fileurl_backup}" ]; then
- # counter set to 0 to allow second try
- counter=0
- remote_fileurls_array=(remote_fileurl remote_fileurl_backup)
- else
- # counter set to 1 to not allow second try
- counter=1
- remote_fileurls_array=(remote_fileurl)
- fi
- for remote_fileurl_array in "${remote_fileurls_array[@]}"; do
- if [ "${remote_fileurl_array}" == "remote_fileurl" ]; then
- fileurl="${remote_fileurl}"
- fileurl_name="${remote_fileurl_name}"
- elif [ "${remote_fileurl_array}" == "remote_fileurl_backup" ]; then
- fileurl="${remote_fileurl_backup}"
- fileurl_name="${remote_fileurl_backup_name}"
- fi
- counter=$((counter + 1))
- if [ ! -d "${local_filedir}" ]; then
- mkdir -p "${local_filedir}"
- fi
- # Trap will remove part downloaded files if canceled.
- trap fn_fetch_trap INT
- curlcmd=(curl --connect-timeout 10 --fail -L -o "${local_filedir}/${local_filename}" --retry 2)
-
- # if is large file show progress, else be silent
- local exitcode=""
- large_files=("bz2" "gz" "zip" "jar" "xz")
- if grep -qE "(^|\s)${local_filename##*.}(\s|$)" <<< "${large_files[@]}"; then
- echo -en "downloading ${local_filename}..."
- fn_sleep_time
- echo -en "\033[1K"
- "${curlcmd[@]}" --progress-bar "${fileurl}" 2>&1
- exitcode="$?"
- else
- echo -en "fetching ${fileurl_name} ${local_filename}...\c"
- "${curlcmd[@]}" --silent --show-error "${fileurl}" 2>&1
- exitcode="$?"
- fi
-
- # Download will fail if downloads a html file.
- if [ -f "${local_filedir}/${local_filename}" ]; then
- if head -n 1 "${local_filedir}/${local_filename}" | grep -q "DOCTYPE"; then
- rm "${local_filedir:?}/${local_filename:?}"
- local exitcode=2
- fi
- fi
-
- # On first try will error. On second try will fail.
- if [ "${exitcode}" != 0 ]; then
- if [ ${counter} -ge 2 ]; then
- fn_print_fail_eol_nl
- if [ -f "${lgsmlog}" ]; then
- fn_script_log_fatal "Downloading ${local_filename}..."
- fn_script_log_fatal "${fileurl}"
- fi
- core_exit.sh
- else
- fn_print_error_eol_nl
- if [ -f "${lgsmlog}" ]; then
- fn_script_log_error "Downloading ${local_filename}..."
- fn_script_log_error "${fileurl}"
- fi
- fi
- else
- fn_print_ok_eol_nl
- if [ -f "${lgsmlog}" ]; then
- fn_script_log_pass "Downloading ${local_filename}..."
- fi
-
- # Make file executable if chmodx is set.
- if [ "${chmodx}" == "chmodx" ]; then
- chmod +x "${local_filedir}/${local_filename}"
- fi
-
- # Remove trap.
- trap - INT
-
- break
- fi
- done
- fi
-
- if [ -f "${local_filedir}/${local_filename}" ]; then
- fn_dl_hash
- # Execute file if run is set.
- if [ "${run}" == "run" ]; then
- # shellcheck source=/dev/null
- source "${local_filedir}/${local_filename}"
- fi
- fi
-}
-
-# GitHub file download functions.
-# Used to simplify downloading specific files from GitHub.
-
-# github_fileurl_dir: the directory of the file in the GitHub: lgsm/functions
-# github_fileurl_name: the filename of the file to download from GitHub: core_messages.sh
-# githuburl: the full GitHub url
-
-# remote_fileurl: The URL of the file: http://example.com/dl/File.tar.bz2
-# local_filedir: location the file is to be saved: /home/server/lgsm/tmp
-# local_filename: name of file (this can be different from the url name): file.tar.bz2
-# chmodx: Optional, set to "chmodx" to make file executable using chmod +x
-# run: Optional, set run to execute the file after download
-# forcedl: Optional, force re-download of file even if exists
-# hash: Optional, set an hash sum and will compare it against the file.
-
-# Fetches files from the Git repo.
-fn_fetch_file_github() {
- github_fileurl_dir="${1}"
- github_fileurl_name="${2}"
- # For legacy versions - code can be removed at a future date
- if [ "${legacymode}" == "1" ]; then
- remote_fileurl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_fileurl_dir}/${github_fileurl_name}"
- remote_fileurl_backup="https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/${github_fileurl_dir}/${github_fileurl_name}"
- # If master branch will currently running LinuxGSM version to prevent "version mixing". This is ignored if a fork.
- elif [ "${githubbranch}" == "master" ] && [ "${githubuser}" == "GameServerManager" ] && [ "${commandname}" != "UPDATE-LGSM" ]; then
- remote_fileurl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${version}/${github_fileurl_dir}/${github_fileurl_name}"
- remote_fileurl_backup="https://bitbucket.org/${githubuser}/${githubrepo}/raw/${version}/${github_fileurl_dir}/${github_fileurl_name}"
- else
- remote_fileurl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_fileurl_dir}/${github_fileurl_name}"
- remote_fileurl_backup="https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/${github_fileurl_dir}/${github_fileurl_name}"
- fi
- remote_fileurl_name="GitHub"
- remote_fileurl_backup_name="Bitbucket"
- local_filedir="${3}"
- local_filename="${github_fileurl_name}"
- chmodx="${4:-0}"
- run="${5:-0}"
- forcedl="${6:-0}"
- hash="${7:-0}"
- # Passes vars to the file download function.
- fn_fetch_file "${remote_fileurl}" "${remote_fileurl_backup}" "${remote_fileurl_name}" "${remote_fileurl_backup_name}" "${local_filedir}" "${local_filename}" "${chmodx}" "${run}" "${forcedl}" "${hash}"
-}
-
-fn_check_file_github() {
- github_fileurl_dir="${1}"
- github_fileurl_name="${2}"
- if [ "${githubbranch}" == "master" ] && [ "${githubuser}" == "GameServerManager" ] && [ "${commandname}" != "UPDATE-LGSM" ]; then
- remote_fileurl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${version}/${github_fileurl_dir}/${github_fileurl_name}"
- remote_fileurl_backup="https://bitbucket.org/${githubuser}/${githubrepo}/raw/${version}/${github_fileurl_dir}/${github_fileurl_name}"
- else
- remote_fileurl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_fileurl_dir}/${github_fileurl_name}"
- remote_fileurl_backup="https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/${github_fileurl_dir}/${github_fileurl_name}"
- fi
- remote_fileurl_name="GitHub"
- remote_fileurl_backup_name="Bitbucket"
- fn_check_file "${remote_fileurl}" "${remote_fileurl_backup}" "${remote_fileurl_name}" "${remote_fileurl_backup_name}" "${github_fileurl_name}"
-}
-
-# Fetches config files from the Git repo.
-fn_fetch_config() {
- github_fileurl_dir="${1}"
- github_fileurl_name="${2}"
- # If master branch will currently running LinuxGSM version to prevent "version mixing". This is ignored if a fork.
- if [ "${githubbranch}" == "master" ] && [ "${githubuser}" == "GameServerManager" ] && [ "${commandname}" != "UPDATE-LGSM" ]; then
- remote_fileurl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${version}/${github_fileurl_dir}/${github_fileurl_name}"
- remote_fileurl_backup="https://bitbucket.org/${githubuser}/${githubrepo}/raw/${version}/${github_fileurl_dir}/${github_fileurl_name}"
- else
- remote_fileurl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_fileurl_dir}/${github_fileurl_name}"
- remote_fileurl_backup="https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/${github_fileurl_dir}/${github_fileurl_name}"
- fi
- remote_fileurl_name="GitHub"
- remote_fileurl_backup_name="Bitbucket"
- local_filedir="${3}"
- local_filename="${4}"
- chmodx="nochmodx"
- run="norun"
- forcedl="noforce"
- hash="nohash"
- # Passes vars to the file download function.
- fn_fetch_file "${remote_fileurl}" "${remote_fileurl_backup}" "${remote_fileurl_name}" "${remote_fileurl_backup_name}" "${local_filedir}" "${local_filename}" "${chmodx}" "${run}" "${forcedl}" "${hash}"
-}
-
-# Fetches modules from the Git repo during first download.
-fn_fetch_function() {
- github_fileurl_dir="lgsm/functions"
- github_fileurl_name="${functionfile}"
- # If master branch will currently running LinuxGSM version to prevent "version mixing". This is ignored if a fork.
- if [ "${githubbranch}" == "master" ] && [ "${githubuser}" == "GameServerManager" ] && [ "${commandname}" != "UPDATE-LGSM" ]; then
- remote_fileurl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${version}/${github_fileurl_dir}/${github_fileurl_name}"
- remote_fileurl_backup="https://bitbucket.org/${githubuser}/${githubrepo}/raw/${version}/${github_fileurl_dir}/${github_fileurl_name}"
- else
- remote_fileurl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_fileurl_dir}/${github_fileurl_name}"
- remote_fileurl_backup="https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/${github_fileurl_dir}/${github_fileurl_name}"
- fi
- remote_fileurl_name="GitHub"
- remote_fileurl_backup_name="Bitbucket"
- local_filedir="${functionsdir}"
- local_filename="${github_fileurl_name}"
- chmodx="chmodx"
- run="run"
- forcedl="noforce"
- hash="nohash"
- # Passes vars to the file download function.
- fn_fetch_file "${remote_fileurl}" "${remote_fileurl_backup}" "${remote_fileurl_name}" "${remote_fileurl_backup_name}" "${local_filedir}" "${local_filename}" "${chmodx}" "${run}" "${forcedl}" "${hash}"
-}
-
-# Fetches modules from the Git repo during update-lgsm.
-fn_update_function() {
- github_fileurl_dir="lgsm/functions"
- github_fileurl_name="${functionfile}"
- # If master branch will currently running LinuxGSM version to prevent "version mixing". This is ignored if a fork.
- if [ "${githubbranch}" == "master" ] && [ "${githubuser}" == "GameServerManager" ] && [ "${commandname}" != "UPDATE-LGSM" ]; then
- remote_fileurl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${version}/${github_fileurl_dir}/${github_fileurl_name}"
- remote_fileurl_backup="https://bitbucket.org/${githubuser}/${githubrepo}/raw/${version}/${github_fileurl_dir}/${github_fileurl_name}"
- else
- remote_fileurl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_fileurl_dir}/${github_fileurl_name}"
- remote_fileurl_backup="https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/${github_fileurl_dir}/${github_fileurl_name}"
- fi
- remote_fileurl_name="GitHub"
- remote_fileurl_backup_name="Bitbucket"
- local_filedir="${functionsdir}"
- local_filename="${github_fileurl_name}"
- chmodx="chmodx"
- run="norun"
- forcedl="noforce"
- hash="nohash"
- # Passes vars to the file download function.
- fn_fetch_file "${remote_fileurl}" "${remote_fileurl_backup}" "${remote_fileurl_name}" "${remote_fileurl_backup_name}" "${local_filedir}" "${local_filename}" "${chmodx}" "${run}" "${forcedl}" "${hash}"
-
-}
-
-# Function to download latest github release.
-# $1 GitHub user / organisation.
-# $2 Repo name.
-# $3 Destination for download.
-# $4 Search string in releases (needed if there are more files that can be downloaded from the release pages).
-fn_dl_latest_release_github() {
- local githubreleaseuser="${1}"
- local githubreleaserepo="${2}"
- local githubreleasedownloadpath="${3}"
- local githubreleasesearch="${4}"
- local githublatestreleaseurl="https://api.github.com/repos/${githubreleaseuser}/${githubreleaserepo}/releases/latest"
-
- # Get last github release.
- # If no search for the release filename is set, just get the first file from the latest release.
- if [ -z "${githubreleasesearch}" ]; then
- githubreleaseassets=$(curl -s "${githublatestreleaseurl}" | jq '[ .assets[] ]')
- else
- githubreleaseassets=$(curl -s "${githublatestreleaseurl}" | jq "[ .assets[]|select(.browser_download_url | contains(\"${githubreleasesearch}\")) ]")
- fi
-
- # Check how many releases we got from the api and exit if we have more then one.
- if [ "$(echo -e "${githubreleaseassets}" | jq '. | length')" -gt 1 ]; then
- fn_print_fatal_nl "Found more than one release to download - Please report this to the LinuxGSM issue tracker"
- fn_script_log_fatal "Found more than one release to download - Please report this to the LinuxGSM issue tracker"
- else
- # Set variables for download via fn_fetch_file.
- githubreleasefilename=$(echo -e "${githubreleaseassets}" | jq -r '.[]name')
- githubreleasedownloadlink=$(echo -e "${githubreleaseassets}" | jq -r '.[]browser_download_url')
-
- # Error if no version is there.
- if [ -z "${githubreleasefilename}" ]; then
- fn_print_fail_nl "Cannot get version from GitHub API for ${githubreleaseuser}/${githubreleaserepo}"
- fn_script_log_fatal "Cannot get version from GitHub API for ${githubreleaseuser}/${githubreleaserepo}"
- else
- # Fetch file from the remote location from the existing function to the ${tmpdir} for now.
- fn_fetch_file "${githubreleasedownloadlink}" "" "${githubreleasefilename}" "" "${githubreleasedownloadpath}" "${githubreleasefilename}"
- fi
- fi
-}
diff --git a/lgsm/functions/core_exit.sh b/lgsm/functions/core_exit.sh
deleted file mode 100644
index 95d9d8cae0..0000000000
--- a/lgsm/functions/core_exit.sh
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/bin/bash
-# LinuxGSM core_exit.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Handles exiting of LinuxGSM by running and reporting an exit code.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-fn_exit_dev_debug() {
- if [ -f "${rootdir}/.dev-debug" ]; then
- echo -e ""
- echo -e "${functionselfname} exiting with code: ${exitcode}"
- if [ -f "${rootdir}/dev-debug.log" ]; then
- grep "functionfile=" "${rootdir}/dev-debug.log" | sed 's/functionfile=//g' > "${rootdir}/dev-debug-function-order.log"
- fi
- fi
-}
-
-# If running dependency check as root will remove any files that belong to root user.
-if [ "$(whoami)" == "root" ] && [ ! -f /.dockerenv ]; then
- find "${lgsmdir}"/ -group root -prune -exec rm -rf {} + > /dev/null 2>&1
- find "${logdir}"/ -group root -prune -exec rm -rf {} + > /dev/null 2>&1
-fi
-
-if [ "${exitbypass}" ]; then
- unset exitbypass
-elif [ "${exitcode}" != "0" ]; then
- # List LinuxGSM version in logs
- fn_script_log_info "LinuxGSM version: ${version}"
- if [ "${exitcode}" == "1" ]; then
- fn_script_log_fatal "${functionselfname} exiting with code: ${exitcode}"
- elif [ "${exitcode}" == "2" ]; then
- fn_script_log_error "${functionselfname} exiting with code: ${exitcode}"
- elif [ "${exitcode}" == "3" ]; then
- fn_script_log_warn "${functionselfname} exiting with code: ${exitcode}"
- else
- fn_script_log_warn "${functionselfname} exiting with code: ${exitcode}"
- fi
- fn_exit_dev_debug
- # remove trap.
- trap - INT
- exit "${exitcode}"
-elif [ "${exitcode}" ] && [ "${exitcode}" == "0" ]; then
- # List LinuxGSM version in logs
- fn_script_log_info "LinuxGSM version: ${version}"
- fn_script_log_pass "${functionselfname} exiting with code: ${exitcode}"
- fn_exit_dev_debug
- # remove trap.
- trap - INT
- exit "${exitcode}"
-else
- # List LinuxGSM version in logs
- fn_script_log_info "LinuxGSM version: ${version}"
- fn_print_error "No exit code set"
- fn_script_log_pass "${functionselfname} exiting with code: NOT SET"
- fn_exit_dev_debug
- # remove trap.
- trap - INT
- exit "${exitcode}"
-fi
diff --git a/lgsm/functions/core_functions.sh b/lgsm/functions/core_functions.sh
deleted file mode 100644
index b301b7e465..0000000000
--- a/lgsm/functions/core_functions.sh
+++ /dev/null
@@ -1,816 +0,0 @@
-#!/bin/bash
-# LinuxGSM core_functions.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Defines all functions to allow download and execution of functions using fn_fetch_function.
-# This function is called first before any other function. Without this file other functions will not load.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-modulesversion="v23.2.3"
-
-# Core
-
-core_dl.sh() {
- functionfile="${FUNCNAME[0]}"
- if [ "$(type fn_fetch_core_dl 2> /dev/null)" ]; then
- fn_fetch_core_dl "lgsm/functions" "core_dl.sh" "${functionsdir}" "chmodx" "run" "noforcedl" "nohash"
- else
- fn_bootstrap_fetch_file_github "lgsm/functions" "core_dl.sh" "${functionsdir}" "chmodx" "run" "noforcedl" "nohash"
- fi
-}
-
-core_messages.sh() {
- functionfile="${FUNCNAME[0]}"
- if [ "$(type fn_fetch_core_dl 2> /dev/null)" ]; then
- fn_fetch_core_dl "lgsm/functions" "core_messages.sh" "${functionsdir}" "chmodx" "run" "noforcedl" "nohash"
- else
- fn_bootstrap_fetch_file_github "lgsm/functions" "core_messages.sh" "${functionsdir}" "chmodx" "run" "noforcedl" "nohash"
- fi
-}
-
-core_legacy.sh() {
- functionfile="${FUNCNAME[0]}"
- if [ "$(type fn_fetch_core_dl 2> /dev/null)" ]; then
- fn_fetch_core_dl "lgsm/functions" "core_legacy.sh" "${functionsdir}" "chmodx" "run" "noforcedl" "nohash"
- else
- fn_bootstrap_fetch_file_github "lgsm/functions" "core_legacy.sh" "${functionsdir}" "chmodx" "run" "noforcedl" "nohash"
- fi
-}
-
-core_exit.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-core_getopt.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-core_trap.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-core_steamcmd.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-core_github.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-# Commands
-
-command_backup.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-command_console.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-command_debug.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-command_details.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-command_donate.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-command_postdetails.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-command_test_alert.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-command_monitor.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-command_start.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-command_stop.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-command_validate.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-command_install.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-command_install_resources_mta.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-install_squad_license.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-command_mods_install.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-command_mods_update.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-command_mods_remove.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-command_fastdl.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-command_ts3_server_pass.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-command_restart.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-command_skeleton.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-command_wipe.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-command_send.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-# Checks
-
-check.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-check_config.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-check_deps.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-check_executable.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-check_glibc.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-check_ip.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-check_last_update.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-check_logs.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-check_permissions.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-check_root.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-check_status.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-check_steamcmd.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-check_system_dir.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-check_system_requirements.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-check_tmuxception.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-check_version.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-# Compress
-
-compress_unreal2_maps.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-compress_ut99_maps.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-# Mods
-
-mods_list.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-mods_core.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-# Dev
-
-command_dev_clear_functions.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-command_dev_debug.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-command_dev_detect_deps.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-command_dev_detect_glibc.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-command_dev_detect_ldd.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-command_dev_query_raw.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-# Fix
-
-fix.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_ark.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_av.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_arma3.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_armar.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_bt.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_bo.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_cmw.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_csgo.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_dst.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_hw.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_ins.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_kf.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_kf2.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_lo.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_mcb.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_mta.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_nmrih.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_onset.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_ro.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_rust.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_rw.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_sfc.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_st.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_steamcmd.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_terraria.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_tf2.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_ut3.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_rust.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_samp.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_sdtd.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_sof2.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_squad.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_ts3.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_ut2k4.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_ut.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_unt.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_vh.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_wurm.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fix_zmr.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-# Info
-
-info_distro.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-info_game.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-info_messages.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-info_stats.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-# Alert
-
-alert.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-alert_discord.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-alert_email.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-alert_ifttt.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-alert_mailgun.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-alert_pushbullet.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-alert_pushover.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-alert_gotify.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-alert_telegram.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-alert_rocketchat.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-alert_slack.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-# Logs
-
-core_logs.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-# Query
-
-query_gamedig.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-# Update
-
-command_update_functions.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-command_update_linuxgsm.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-command_update.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-command_check_update.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-update_ts3.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-update_minecraft.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-update_minecraft_bedrock.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-update_papermc.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-update_mta.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-update_factorio.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-update_jediknight2.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-update_steamcmd.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-update_vintagestory.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-update_ut99.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-fn_update_functions.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-#
-## Installer functions
-#
-
-fn_autoinstall() {
- autoinstall=1
- command_install.sh
-}
-
-install_complete.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-install_config.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-install_factorio_save.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-install_dst_token.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-install_eula.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-install_gsquery.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-install_gslt.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-install_header.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-install_logs.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-install_retry.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-install_server_dir.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-install_server_files.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-install_stats.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-install_steamcmd.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-install_ts3.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-install_ts3db.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-install_ut2k4.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-install_dl_ut2k4.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-install_ut2k4_key.sh() {
- functionfile="${FUNCNAME[0]}"
- fn_fetch_function
-}
-
-# Calls code required for legacy servers
-core_legacy.sh
-
-# Creates tmp dir if missing
-if [ ! -d "${tmpdir}" ]; then
- mkdir -p "${tmpdir}"
-fi
-
-# Creates lock dir if missing
-if [ ! -d "${lockdir}" ]; then
- mkdir -p "${lockdir}"
-fi
-
-# Calls on-screen messages (bootstrap)
-core_messages.sh
-
-#Calls file downloader (bootstrap)
-core_dl.sh
-
-# Calls the global Ctrl-C trap
-core_trap.sh
diff --git a/lgsm/functions/core_getopt.sh b/lgsm/functions/core_getopt.sh
deleted file mode 100644
index 808fe2e2af..0000000000
--- a/lgsm/functions/core_getopt.sh
+++ /dev/null
@@ -1,215 +0,0 @@
-#!/bin/bash
-# LinuxGSM core_getopt.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: getopt arguments.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-### Define all commands here.
-## User commands | Trigger commands | Description
-# Standard commands.
-cmd_install=("i;install" "command_install.sh" "Install the server.")
-cmd_auto_install=("ai;auto-install" "fn_autoinstall" "Install the server without prompts.")
-cmd_start=("st;start" "command_start.sh" "Start the server.")
-cmd_stop=("sp;stop" "command_stop.sh" "Stop the server.")
-cmd_restart=("r;restart" "command_restart.sh" "Restart the server.")
-cmd_details=("dt;details" "command_details.sh" "Display server information.")
-cmd_postdetails=("pd;postdetails" "command_postdetails.sh" "Post details to termbin.com (removing passwords).")
-cmd_backup=("b;backup" "command_backup.sh" "Create backup archives of the server.")
-cmd_update_linuxgsm=("ul;update-lgsm;uf;update-functions" "command_update_linuxgsm.sh" "Check and apply any LinuxGSM updates.")
-cmd_test_alert=("ta;test-alert" "command_test_alert.sh" "Send a test alert.")
-cmd_monitor=("m;monitor" "command_monitor.sh" "Check server status and restart if crashed.")
-cmd_skeleton=("sk;skeleton" "command_skeleton.sh" "Create a skeleton directory.")
-cmd_donate=("do;donate" "command_donate.sh" "Donation options.")
-cmd_send=("sd;send" "command_send.sh" "Send command to game server console.")
-# Console servers only.
-cmd_console=("c;console" "command_console.sh" "Access server console.")
-cmd_debug=("d;debug" "command_debug.sh" "Start server directly in your terminal.")
-# Update servers only.
-cmd_update=("u;update" "command_update.sh" "Check and apply any server updates.")
-cmd_check_update=("cu;check-update" "command_check_update.sh" "Check if a gameserver update is available")
-cmd_force_update=("fu;force-update;update-restart;ur" "forceupdate=1; command_update.sh" "Apply server updates bypassing check.")
-# SteamCMD servers only.
-cmd_validate=("v;validate" "command_validate.sh" "Validate server files with SteamCMD.")
-# Server with mods-install.
-cmd_mods_install=("mi;mods-install" "command_mods_install.sh" "View and install available mods/addons.")
-cmd_mods_remove=("mr;mods-remove" "command_mods_remove.sh" "View and remove an installed mod/addon.")
-cmd_mods_update=("mu;mods-update" "command_mods_update.sh" "Update installed mods/addons.")
-# Server specific.
-cmd_change_password=("pw;change-password" "command_ts3_server_pass.sh" "Change TS3 serveradmin password.")
-cmd_install_default_resources=("ir;install-default-resources" "command_install_resources_mta.sh" "Install the MTA default resources.")
-cmd_fullwipe=("fw;full-wipe;wa;wipeall" "serverwipe=1; command_wipe.sh" "Reset the map and remove blueprint data.")
-cmd_mapwipe=("mw;map-wipe;w;wipe;wi" "mapwipe=1; command_wipe.sh" "Reset the map and keep blueprint data.")
-cmd_map_compressor_u99=("mc;map-compressor" "compress_ut99_maps.sh" "Compresses all ${gamename} server maps.")
-cmd_map_compressor_u2=("mc;map-compressor" "compress_unreal2_maps.sh" "Compresses all ${gamename} server maps.")
-cmd_install_cdkey=("cd;server-cd-key" "install_ut2k4_key.sh" "Add your server cd key.")
-cmd_install_dst_token=("ct;cluster-token" "install_dst_token.sh" "Configure cluster token.")
-cmd_install_squad_license=("li;license" "install_squad_license.sh" "Add your Squad server license.")
-cmd_fastdl=("fd;fastdl" "command_fastdl.sh" "Build a FastDL directory.")
-# Dev commands.
-cmd_dev_debug=("dev;developer" "command_dev_debug.sh" "Enable developer Mode.")
-cmd_dev_detect_deps=("dd;detect-deps" "command_dev_detect_deps.sh" "Detect required dependencies.")
-cmd_dev_detect_glibc=("dg;detect-glibc" "command_dev_detect_glibc.sh" "Detect required glibc.")
-cmd_dev_detect_ldd=("dl;detect-ldd" "command_dev_detect_ldd.sh" "Detect required dynamic dependencies.")
-cmd_dev_query_raw=("qr;query-raw" "command_dev_query_raw.sh" "The raw output of gamedig and gsquery.")
-cmd_dev_clear_functions=("cf;clear-functions" "command_dev_clear_functions.sh" "Delete the contents of the functions dir.")
-
-### Set specific opt here.
-
-currentopt=("${cmd_start[@]}" "${cmd_stop[@]}" "${cmd_restart[@]}" "${cmd_monitor[@]}" "${cmd_test_alert[@]}" "${cmd_details[@]}" "${cmd_postdetails[@]}" "${cmd_skeleton[@]}")
-
-# Update LinuxGSM.
-currentopt+=("${cmd_update_linuxgsm[@]}")
-
-# Exclude noupdate games here.
-if [ "${shortname}" == "jk2" ] || [ "${engine}" != "idtech3" ]; then
- if [ "${shortname}" != "bf1942" ] && [ "${shortname}" != "bfv" ] && [ "${engine}" != "idtech2" ] && [ "${engine}" != "iw2.0" ] && [ "${engine}" != "iw3.0" ] && [ "${engine}" != "quake" ] && [ "${shortname}" != "samp" ] && [ "${shortname}" != "ut2k4" ]; then
- currentopt+=("${cmd_update[@]}" "${cmd_check_update[@]}")
- # force update for SteamCMD or Multi Theft Auto only.
- if [ "${appid}" ] || [ "${shortname}" == "mta" ]; then
- currentopt+=("${cmd_force_update[@]}")
- fi
- fi
-fi
-
-# Validate and check-update command.
-if [ "${appid}" ]; then
- currentopt+=("${cmd_validate[@]}")
-fi
-
-# Backup.
-currentopt+=("${cmd_backup[@]}")
-
-# Console & Debug.
-currentopt+=("${cmd_console[@]}" "${cmd_debug[@]}")
-
-# Console send.
-if [ "${consoleinteract}" == "yes" ]; then
- currentopt+=("${cmd_send[@]}")
-fi
-
-## Game server exclusive commands.
-
-# FastDL command.
-if [ "${engine}" == "source" ]; then
- currentopt+=("${cmd_fastdl[@]}")
-fi
-
-# TeamSpeak exclusive.
-if [ "${shortname}" == "ts3" ]; then
- currentopt+=("${cmd_change_password[@]}")
-fi
-
-# Rust exclusive.
-if [ "${shortname}" == "rust" ]; then
- currentopt+=("${cmd_fullwipe[@]}" "${cmd_mapwipe[@]}")
-fi
-
-# Unreal exclusive.
-if [ "${engine}" == "unreal2" ]; then
- if [ "${shortname}" == "ut2k4" ]; then
- currentopt+=("${cmd_install_cdkey[@]}" "${cmd_map_compressor_u2[@]}")
- else
- currentopt+=("${cmd_map_compressor_u2[@]}")
- fi
-fi
-if [ "${engine}" == "unreal" ]; then
- currentopt+=("${cmd_map_compressor_u99[@]}")
-fi
-
-# DST exclusive.
-if [ "${shortname}" == "dst" ]; then
- currentopt+=("${cmd_install_dst_token[@]}")
-fi
-
-# MTA exclusive.
-if [ "${shortname}" == "mta" ]; then
- currentopt+=("${cmd_install_default_resources[@]}")
-fi
-
-# Squad license exclusive.
-if [ "${shortname}" == "squad" ]; then
- currentopt+=("${cmd_install_squad_license[@]}")
-fi
-
-## Mods commands.
-if [ "${engine}" == "source" ] || [ "${shortname}" == "rust" ] || [ "${shortname}" == "hq" ] || [ "${shortname}" == "sdtd" ] || [ "${shortname}" == "cs" ] || [ "${shortname}" == "dod" ] || [ "${shortname}" == "tfc" ] || [ "${shortname}" == "ns" ] || [ "${shortname}" == "ts" ] || [ "${shortname}" == "hldm" ] || [ "${shortname}" == "vh" ]; then
- currentopt+=("${cmd_mods_install[@]}" "${cmd_mods_remove[@]}" "${cmd_mods_update[@]}")
-fi
-
-## Installer.
-currentopt+=("${cmd_install[@]}" "${cmd_auto_install[@]}")
-
-## Developer commands.
-currentopt+=("${cmd_dev_debug[@]}")
-if [ -f ".dev-debug" ]; then
- currentopt+=("${cmd_dev_detect_deps[@]}" "${cmd_dev_detect_glibc[@]}" "${cmd_dev_detect_ldd[@]}" "${cmd_dev_query_raw[@]}" "${cmd_dev_clear_functions[@]}")
-fi
-
-## Donate.
-currentopt+=("${cmd_donate[@]}")
-
-### Build list of available commands.
-optcommands=()
-index="0"
-for ((index = "0"; index < ${#currentopt[@]}; index += 3)); do
- cmdamount=$(echo -e "${currentopt[index]}" | awk -F ';' '{ print NF }')
- for ((cmdindex = 1; cmdindex <= cmdamount; cmdindex++)); do
- optcommands+=("$(echo -e "${currentopt[index]}" | awk -F ';' -v x=${cmdindex} '{ print $x }')")
- done
-done
-
-# Shows LinuxGSM usage.
-fn_opt_usage() {
- echo -e "Usage: $0 [option]"
- echo -e ""
- echo -e "LinuxGSM - ${gamename} - Version ${version}"
- echo -e "https://linuxgsm.com/${gameservername}"
- echo -e ""
- echo -e "${lightyellow}Commands${default}"
- # Display available commands.
- index="0"
- {
- for ((index = "0"; index < ${#currentopt[@]}; index += 3)); do
- # Hide developer commands.
- if [ "${currentopt[index + 2]}" != "DEVCOMMAND" ]; then
- echo -e "${cyan}$(echo -e "${currentopt[index]}" | awk -F ';' '{ print $2 }')\t${default}$(echo -e "${currentopt[index]}" | awk -F ';' '{ print $1 }')\t| ${currentopt[index + 2]}"
- fi
- done
- } | column -s $'\t' -t
- fn_script_log_pass "Display commands"
- core_exit.sh
-}
-
-# Check if command existw and run corresponding scripts, or display script usage.
-if [ -z "${getopt}" ]; then
- fn_opt_usage
-fi
-# If command exists.
-for i in "${optcommands[@]}"; do
- if [ "${i}" == "${getopt}" ]; then
- # Seek and run command.
- index="0"
- for ((index = "0"; index < ${#currentopt[@]}; index += 3)); do
- currcmdamount=$(echo -e "${currentopt[index]}" | awk -F ';' '{ print NF }')
- for ((currcmdindex = 1; currcmdindex <= currcmdamount; currcmdindex++)); do
- if [ "$(echo -e "${currentopt[index]}" | awk -F ';' -v x=${currcmdindex} '{ print $x }')" == "${getopt}" ]; then
- # Run command.
- eval "${currentopt[index + 1]}"
- # Exit should occur in modules. Should this not happen print an error
- fn_print_error2_nl "Command did not exit correctly: ${getopt}"
- fn_script_log_error "Command did not exit correctly: ${getopt}"
- core_exit.sh
- fi
- done
- done
- fi
-done
-
-# If we're executing this, it means command was not found.
-fn_print_error2_nl "Unknown command: $0 ${getopt}"
-fn_script_log_error "Unknown command: $0 ${getopt}"
-fn_opt_usage
-core_exit.sh
diff --git a/lgsm/functions/core_github.sh b/lgsm/functions/core_github.sh
deleted file mode 100644
index 0462e65bfa..0000000000
--- a/lgsm/functions/core_github.sh
+++ /dev/null
@@ -1,114 +0,0 @@
-#!/bin/bash
-# LinuxGSM core_github.sh function
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: core function file for updates via github
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-github_api="https://api.github.com"
-
-fn_githublocalversionfile() {
- local githubreleaseuser="${1}"
- local githubreleaserepo="${2}"
-
- githublocalversionfile="${datadir}/github-${githubreleaseuser}-${githubreleaserepo}-version"
-}
-
-# $1 githubuser/group
-# $2 github repo name
-fn_github_get_latest_release_version() {
- local githubreleaseuser="${1}"
- local githubreleaserepo="${2}"
- local githublatestreleaseurl="${github_api}/repos/${githubreleaseuser}/${githubreleaserepo}/releases/latest"
-
- githubreleaseversion=$(curl -s --connect-timeout 10 "${githublatestreleaseurl}" | jq '.tag_name')
-
- # error if no version is there
- if [ -z "${githubreleaseversion}" ]; then
- fn_print_fail_nl "Cannot get version from GitHub API for ${githubreleaseuser}/${githubreleaserepo}"
- fn_script_log_fatal "Cannot get version from GitHub API for ${githubreleaseuser}/${githubreleaserepo}"
- fi
-}
-
-# $1 githubuser/group
-# $2 github repo name
-fn_github_set_latest_release_version() {
- local githubreleaseuser="${1}"
- local githubreleaserepo="${2}"
-
- fn_githublocalversionfile "${githubreleaseuser}" "${githubreleaserepo}"
-
- local githublatestreleaseurl="${github_api}/repos/${githubreleaseuser}/${githubreleaserepo}/releases/latest"
- githubreleaseversion=$(curl -s "${githublatestreleaseurl}" | jq -r '.tag_name')
-
- # error if no version is there
- if [ -z "${githubreleaseversion}" ]; then
- fn_print_fail_nl "Cannot get version from GitHub API for ${githubreleaseuser}/${githubreleaserepo}"
- fn_script_log_fatal "Cannot get version from GitHub API for ${githubreleaseuser}/${githubreleaserepo}"
- else
- echo "${githubreleaseversion}" > "${githublocalversionfile}"
- fi
-}
-
-# $1 githubuser/group
-# $2 github repo name
-fn_github_get_installed_version() {
- local githubreleaseuser="${1}"
- local githubreleaserepo="${2}"
-
- fn_githublocalversionfile "${githubreleaseuser}" "${githubreleaserepo}"
-
- githublocalversion=$(cat "${githublocalversionfile}")
-}
-
-# $1 githubuser/group
-# $2 github repo name
-# if a update needs to be downloaded - updateneeded is set to 1
-fn_github_compare_version() {
- local githubreleaseuser="${1}"
- local githubreleaserepo="${2}"
- exitcode=0
- updateneeded=0
-
- fn_githublocalversionfile "${githubreleaseuser}" "${githubreleaserepo}"
- local githublatestreleaseurl="${github_api}/repos/${githubreleaseuser}/${githubreleaserepo}/releases/latest"
-
- githublocalversion=$(cat "${githublocalversionfile}")
- githubreleaseversion=$(curl -s "${githublatestreleaseurl}" | jq '.tag_name')
-
- # error if no version is there
- if [ -z "${githubreleaseversion}" ]; then
- fn_print_fail_nl "Can not get version from Github Api for ${githubreleaseuser}/${githubreleaserepo}"
- fn_script_log_fatal "Can not get version from Github Api for ${githubreleaseuser}/${githubreleaserepo}"
- else
- if [ "${githublocalversion}" == "${githubreleaseversion}" ]; then
- echo -en "\n"
- echo -e "No update from github.com/${githubreleaseuser}/${githubreleaserepo}/ available:"
- echo -e "* Local build: ${red}${githublocalversion}${default}"
- echo -e "* Remote build: ${green}${githubreleaseversion}${default}"
- echo -en "\n"
- else
- # check if version that is installed is higher than the remote version to not override it
- last_version=$(echo -e "${githublocalversion}\n${githubreleaseversion}" | sort -V | head -n1)
- if [ "${githubreleaseversion}" == "${last_version}" ]; then
- echo -en "\n"
- echo -e "Update from github.com/${githubreleaseuser}/${githubreleaserepo}/ available:"
- echo -e "* Local build: ${red}${githublocalversion}${default}"
- echo -e "* Remote build: ${green}${githubreleaseversion}${default}"
- echo -en "\n"
- updateneeded=1
- else
- # local version is higher than the remote version output this to the user
- # strange case but could be possible, as a release could be removed from github
- echo -en "\n"
- echo -e "Local version is newer than the remote version"
- echo -e "* Local version: ${green}${githublocalversion}${default}"
- echo -e "* Remote version: ${green}${githubreleaseversion}${default}"
- echo -en "\n"
- exitcode=1
- fi
- fi
- fi
-}
diff --git a/lgsm/functions/core_legacy.sh b/lgsm/functions/core_legacy.sh
deleted file mode 100644
index 1cb77258b8..0000000000
--- a/lgsm/functions/core_legacy.sh
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/bin/bash
-# LinuxGSM core_legacy.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Code for backwards compatability with older versions of LinuxGSM.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-# This is to help the transition to v20.3.0 and above
-legacy_versions_array=(v20.2.1 v20.2.0 v20.1.5 v20.1.4 v20.1.3 v20.1.2 v20.1.1 v20.1.0 v19.12.5 v19.12.4 v19.12.3 v19.12.2 v19.12.1 v19.12.0)
-for legacy_version in "${legacy_versions_array[@]}"; do
- if [ "${version}" == "${legacy_version}" ]; then
- legacymode=1
- fi
-done
-
-if [ -z "${serverfiles}" ]; then
- serverfiles="${filesdir}"
-fi
-
-if [ -z "${logdir}" ]; then
- [ -n "${LGSM_LOGDIR}" ] && logdir="${LGSM_LOGDIR}" || logdir="${rootdir}/log"
-fi
-
-if [ -z "${lgsmlogdir}" ]; then
- lgsmlogdir="${scriptlogdir}"
-fi
-
-if [ -z "${lgsmlog}" ]; then
- lgsmlog="${scriptlog}"
-fi
-
-if [ -z "${lgsmlogdate}" ]; then
- lgsmlogdate="${scriptlogdate}"
-fi
-
-if [ -z "${steamcmddir}" ]; then
- steamcmddir="${HOME}/.steam/steamcmd"
-fi
-
-if [ -z "${lgsmdir}" ]; then
- lgsmdir="${rootdir}/lgsm"
-fi
-
-if [ -z "${tmpdir}" ]; then
- tmpdir="${lgsmdir}/tmp"
-fi
-
-if [ -z "${alertlog}" ]; then
- alertlog="${emaillog}"
-fi
-
-if [ -z "${servicename}" ]; then
- servicename="${selfname}"
-fi
-
-# Alternations to workshop variables.
-if [ -z "${wsapikey}" ]; then
- if [ "${workshopauth}" ]; then
- wsapikey="${workshopauth}"
- elif [ "${authkey}" ]; then
- wsapikey="${authkey}"
- fi
-fi
-
-if [ -z "${wscollectionid}" ]; then
- if [ "${workshopauth}" ]; then
- wscollectionid="${ws_collection_id}"
- elif [ "${authkey}" ]; then
- wscollectionid="${workshopcollectionid}"
- fi
-fi
-
-if [ -z "${wsstartmap}" ]; then
- if [ "${ws_start_map}" ]; then
- wscollectionid="${ws_start_map}"
- fi
-fi
-
-fn_parms() {
- fn_reload_startparameters
- parms="${startparameters}"
-}
diff --git a/lgsm/functions/core_logs.sh b/lgsm/functions/core_logs.sh
deleted file mode 100644
index 1f0e275400..0000000000
--- a/lgsm/functions/core_logs.sh
+++ /dev/null
@@ -1,110 +0,0 @@
-#!/bin/bash
-# LinuxGSM core_logs.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Acts as a log rotator, removing old logs.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-# Check if logfile variable and file exist, create logfile if it doesn't exist.
-if [ "${consolelog}" ]; then
- if [ ! -f "${consolelog}" ]; then
- touch "${consolelog}"
- fi
-fi
-
-# For games not displaying a console, and having logs into their game directory.
-check_status.sh
-if [ "${status}" != "0" ] && [ "${commandname}" == "START" ] && [ -n "${gamelogfile}" ]; then
- if [ "$(find "${systemdir}" -name "gamelog*.log")" ]; then
- fn_print_info "Moving game logs to ${gamelogdir}"
- fn_script_log_info "Moving game logs to ${gamelogdir}"
- echo -en "\n"
- fn_sleep_time
- mv "${systemdir}"/gamelog*.log "${gamelogdir}"
- fi
-fi
-
-# Log manager will start the cleanup if it finds logs older than "${logdays}".
-if [ "$(find "${lgsmlogdir}"/ -type f -mtime +"${logdays}" | wc -l)" -ne "0" ]; then
- fn_print_dots "Starting"
- # Set common logs directories
- commonlogs="${systemdir}/logs"
- commonsourcelogs="${systemdir}/*/logs"
- # Set addon logs directories
- sourcemodlogdir="${systemdir}/addons/sourcemod/logs"
- ulxlogdir="${systemdir}/data/ulx_logs"
- darkrplogdir="${systemdir}/data/darkrp_logs"
- legacyserverlogdir="${logdir}/server"
- # Setting up counting variables
- scriptcount="0"
- consolecount="0"
- gamecount="0"
- srcdscount="0"
- smcount="0"
- ulxcount="0"
- darkrpcount="0"
- legacycount="0"
- fn_sleep_time
- fn_print_info "Removing logs older than ${logdays} days"
- fn_script_log_info "Removing logs older than ${logdays} days"
- # Logging logfiles to be removed according to "${logdays}", counting and removing them.
- # Script logfiles.
- find "${lgsmlogdir}"/ -type f -mtime +"${logdays}" | tee >> "${lgsmlog}"
- scriptcount=$(find "${lgsmlogdir}"/ -type f -mtime +"${logdays}" | wc -l)
- find "${lgsmlogdir}"/ -mtime +"${logdays}" -type f -exec rm -f {} \;
- # SRCDS and unreal logfiles.
- if [ "${engine}" == "unreal2" ] || [ "${engine}" == "source" ]; then
- find "${gamelogdir}"/ -type f -mtime +"${logdays}" | tee >> "${lgsmlog}"
- gamecount=$(find "${gamelogdir}"/ -type f -mtime +"${logdays}" | wc -l)
- find "${gamelogdir}"/ -mtime +"${logdays}" -type f -exec rm -f {} \;
- fi
- # Console logfiles.
- if [ "${consolelog}" ]; then
- find "${consolelogdir}"/ -type f -mtime +"${logdays}" | tee >> "${lgsmlog}"
- consolecount=$(find "${consolelogdir}"/ -type f -mtime +"${logdays}" | wc -l)
- find "${consolelogdir}"/ -mtime +"${logdays}" -type f -exec rm -f {} \;
- fi
- # Common logfiles.
- if [ -d "${commonlogs}" ]; then
- find "${commonlogs}"/ -type f -mtime +"${logdays}" | tee >> "${lgsmlog}"
- smcount=$(find "${commonlogs}"/ -type f -mtime +"${logdays}" | wc -l)
- find "${commonlogs}"/ -mtime +"${logdays}" -type f -exec rm -f {} \;
- fi
- if [ -d "${commonsourcelogs}" ]; then
- find "${commonsourcelogs}"/* -type f -mtime +"${logdays}" | tee >> "${lgsmlog}"
- smcount=$(find "${commonsourcelogs}"/* -type f -mtime +"${logdays}" | wc -l)
- find "${commonsourcelogs}"/* -mtime +"${logdays}" -type f -exec rm -f {} \;
- fi
- # Source addons logfiles.
- if [ "${engine}" == "source" ]; then
- # SourceMod logfiles.
- if [ -d "${sourcemodlogdir}" ]; then
- find "${sourcemodlogdir}"/ -type f -mtime +"${logdays}" | tee >> "${lgsmlog}"
- smcount=$(find "${sourcemodlogdir}"/ -type f -mtime +"${logdays}" | wc -l)
- find "${sourcemodlogdir}"/ -mtime +"${logdays}" -type f -exec rm -f {} \;
- fi
- # Garry's Mod logfiles.
- if [ "${shortname}" == "gmod" ]; then
- # ULX logfiles.
- if [ -d "${ulxlogdir}" ]; then
- find "${ulxlogdir}"/ -type f -mtime +"${logdays}" | tee >> "${lgsmlog}"
- ulxcount=$(find "${ulxlogdir}"/ -type f -mtime +"${logdays}" | wc -l)
- find "${ulxlogdir}"/ -mtime +"${logdays}" -type f -exec rm -f {} \;
- fi
- # DarkRP logfiles.
- if [ -d "${darkrplogdir}" ]; then
- find "${darkrplogdir}"/ -type f -mtime +"${logdays}" | tee >> "${lgsmlog}"
- darkrpcount=$(find "${darkrplogdir}"/ -type f -mtime +"${logdays}" | wc -l)
- find "${darkrplogdir}"/ -mtime +"${logdays}" -type f -exec rm -f {} \;
- fi
- fi
- fi
-
- # Count total amount of files removed.
- countlogs=$((scriptcount + consolecount + gamecount + srcdscount + smcount + ulxcount + darkrpcount))
- # Job done.
- fn_print_ok "Removed ${countlogs} log files"
- fn_script_log "Removed ${countlogs} log files"
-fi
diff --git a/lgsm/functions/core_messages.sh b/lgsm/functions/core_messages.sh
deleted file mode 100644
index 5362dd3d30..0000000000
--- a/lgsm/functions/core_messages.sh
+++ /dev/null
@@ -1,598 +0,0 @@
-#!/bin/bash
-# LinuxGSM core_messages.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Defines on-screen messages such as [ OK ] and how script logs look.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-# nl: new line: message is following by a new line.
-# eol: end of line: message is placed at the end of the current line.
-fn_ansi_loader() {
- if [ "${ansi}" != "off" ]; then
- # echo colors
- default="\e[0m"
- black="\e[30m"
- red="\e[31m"
- lightred="\e[91m"
- green="\e[32m"
- lightgreen="\e[92m"
- yellow="\e[33m"
- lightyellow="\e[93m"
- blue="\e[34m"
- lightblue="\e[94m"
- magenta="\e[35m"
- lightmagenta="\e[95m"
- cyan="\e[36m"
- lightcyan="\e[96m"
- darkgrey="\e[90m"
- lightgrey="\e[37m"
- white="\e[97m"
- fi
- # carriage return & erase to end of line.
- creeol="\r\033[K"
-}
-
-fn_sleep_time() {
- if [ "${sleeptime}" != "0" ] || [ "${travistest}" != "1" ]; then
- if [ -z "${sleeptime}" ]; then
- sleeptime=0.5
- fi
- sleep "${sleeptime}"
- fi
-}
-
-# Log display
-########################
-## Feb 28 14:56:58 ut99-server: Monitor:
-fn_script_log() {
- if [ -d "${lgsmlogdir}" ]; then
- if [ -n "${commandname}" ]; then
- echo -e "$(date '+%b %d %H:%M:%S.%3N') ${selfname}: ${commandname}: ${1}" >> "${lgsmlog}"
- else
- echo -e "$(date '+%b %d %H:%M:%S.%3N') ${selfname}: ${1}" >> "${lgsmlog}"
- fi
- fi
-}
-
-## Feb 28 14:56:58 ut99-server: Monitor: PASS:
-fn_script_log_pass() {
- if [ -d "${lgsmlogdir}" ]; then
-
- if [ -n "${commandname}" ]; then
- echo -e "$(date '+%b %d %H:%M:%S.%3N') ${selfname}: ${commandname}: PASS: ${1}" >> "${lgsmlog}"
- else
- echo -e "$(date '+%b %d %H:%M:%S.%3N') ${selfname}: PASS: ${1}" >> "${lgsmlog}"
- fi
- fi
- exitcode=0
-}
-
-## Feb 28 14:56:58 ut99-server: Monitor: FATAL:
-fn_script_log_fatal() {
- if [ -d "${lgsmlogdir}" ]; then
- if [ -n "${commandname}" ]; then
- echo -e "$(date '+%b %d %H:%M:%S.%3N') ${selfname}: ${commandname}: FATAL: ${1}" >> "${lgsmlog}"
- else
- echo -e "$(date '+%b %d %H:%M:%S.%3N') ${selfname}: FATAL: ${1}" >> "${lgsmlog}"
- fi
- fi
- exitcode=1
-}
-
-## Feb 28 14:56:58 ut99-server: Monitor: ERROR:
-fn_script_log_error() {
- if [ -d "${lgsmlogdir}" ]; then
- if [ -n "${commandname}" ]; then
- echo -e "$(date '+%b %d %H:%M:%S.%3N') ${selfname}: ${commandname}: ERROR: ${1}" >> "${lgsmlog}"
- else
- echo -e "$(date '+%b %d %H:%M:%S.%3N') ${selfname}: ERROR: ${1}" >> "${lgsmlog}"
- fi
- fi
- exitcode=2
-}
-
-## Feb 28 14:56:58 ut99-server: Monitor: WARN:
-fn_script_log_warn() {
- if [ -d "${lgsmlogdir}" ]; then
- if [ -n "${commandname}" ]; then
- echo -e "$(date '+%b %d %H:%M:%S.%3N') ${selfname}: ${commandname}: WARN: ${1}" >> "${lgsmlog}"
- else
- echo -e "$(date '+%b %d %H:%M:%S.%3N') ${selfname}: WARN: ${1}" >> "${lgsmlog}"
- fi
- fi
- exitcode=3
-}
-
-## Feb 28 14:56:58 ut99-server: Monitor: INFO:
-fn_script_log_info() {
- if [ -d "${lgsmlogdir}" ]; then
- if [ -n "${commandname}" ]; then
- echo -e "$(date '+%b %d %H:%M:%S.%3N') ${selfname}: ${commandname}: INFO: ${1}" >> "${lgsmlog}"
- else
- echo -e "$(date '+%b %d %H:%M:%S.%3N') ${selfname}: INFO: ${1}" >> "${lgsmlog}"
- fi
- fi
-}
-
-## Feb 28 14:56:58 ut99-server: Monitor: UPDATE:
-fn_script_log_update() {
- if [ -d "${lgsmlogdir}" ]; then
- if [ -n "${commandname}" ]; then
- echo -e "$(date '+%b %d %H:%M:%S.%3N') ${selfname}: ${commandname}: UPDATE: ${1}" >> "${lgsmlog}"
- else
- echo -e "$(date '+%b %d %H:%M:%S.%3N') ${selfname}: UPDATE: ${1}" >> "${lgsmlog}"
- fi
- fi
-}
-
-# On-Screen - Automated functions
-##################################
-
-# [ .... ]
-fn_print_dots() {
- if [ "${commandaction}" ]; then
- echo -en "${creeol}[ .... ] ${commandaction} ${selfname}: $*"
- else
- echo -en "${creeol}[ .... ] $*"
- fi
- fn_sleep_time
-}
-
-fn_print_dots_nl() {
- if [ "${commandaction}" ]; then
- echo -e "${creeol}[ .... ] ${commandaction} ${selfname}: $*"
- else
- echo -e "${creeol}[ .... ] $*"
- fi
- fn_sleep_time
- echo -en "\n"
-}
-
-# [ OK ]
-fn_print_ok() {
- if [ "${commandaction}" ]; then
- echo -en "${creeol}[${green} OK ${default}] ${commandaction} ${selfname}: $*"
- else
- echo -en "${creeol}[${green} OK ${default}] $*"
- fi
- fn_sleep_time
-}
-
-fn_print_ok_nl() {
- if [ "${commandaction}" ]; then
- echo -en "${creeol}[${green} OK ${default}] ${commandaction} ${selfname}: $*"
- else
- echo -en "${creeol}[${green} OK ${default}] $*"
- fi
- fn_sleep_time
- echo -en "\n"
-}
-
-# [ FAIL ]
-fn_print_fail() {
- if [ "${commandaction}" ]; then
- echo -en "${creeol}[${red} FAIL ${default}] ${commandaction} ${selfname}: $*"
- else
- echo -en "${creeol}[${red} FAIL ${default}] $*"
- fi
- fn_sleep_time
-}
-
-fn_print_fail_nl() {
- if [ "${commandaction}" ]; then
- echo -en "${creeol}[${red} FAIL ${default}] ${commandaction} ${selfname}: $*"
- else
- echo -en "${creeol}[${red} FAIL ${default}] $*"
- fi
- fn_sleep_time
- echo -en "\n"
-}
-
-# [ ERROR ]
-fn_print_error() {
- if [ "${commandaction}" ]; then
- echo -en "${creeol}[${red} ERROR ${default}] ${commandaction} ${selfname}: $*"
- else
- echo -en "${creeol}[${red} ERROR ${default}] $*"
- fi
- fn_sleep_time
-}
-
-fn_print_error_nl() {
- if [ "${commandaction}" ]; then
- echo -en "${creeol}[${red} ERROR ${default}] ${commandaction} ${selfname}: $*"
- else
- echo -en "${creeol}[${red} ERROR ${default}] $*"
- fi
- fn_sleep_time
- echo -en "\n"
-}
-
-# [ WARN ]
-fn_print_warn() {
- if [ "${commandaction}" ]; then
- echo -en "${creeol}[${lightyellow} WARN ${default}] ${commandaction} ${selfname}: $*"
- else
- echo -en "${creeol}[${lightyellow} WARN ${default}] $*"
- fi
- fn_sleep_time
-}
-
-fn_print_warn_nl() {
- if [ "${commandaction}" ]; then
- echo -en "${creeol}[${lightyellow} WARN ${default}] ${commandaction} ${selfname}: $*"
- else
- echo -en "${creeol}[${lightyellow} WARN ${default}] $*"
- fi
- fn_sleep_time
- echo -en "\n"
-}
-
-# [ INFO ]
-fn_print_info() {
- if [ "${commandaction}" ]; then
- echo -en "${creeol}[${cyan} INFO ${default}] ${commandaction} ${selfname}: $*"
- else
- echo -en "${creeol}[${cyan} INFO ${default}] $*"
- fi
- fn_sleep_time
-}
-
-fn_print_info_nl() {
- if [ "${commandaction}" ]; then
- echo -en "${creeol}[${cyan} INFO ${default}] ${commandaction} ${selfname}: $*"
- else
- echo -en "${creeol}[${cyan} INFO ${default}] $*"
- fi
- fn_sleep_time
- echo -en "\n"
-}
-
-# [ START ]
-fn_print_start() {
- if [ "${commandaction}" ]; then
- echo -en "${creeol}[${lightgreen} START ${default}] ${commandaction} ${selfname}: $*"
- else
- echo -en "${creeol}[${lightgreen} START ${default}] $*"
- fi
- fn_sleep_time
-}
-
-fn_print_start_nl() {
- if [ "${commandaction}" ]; then
- echo -en "${creeol}[${lightgreen} START ${default}] ${commandaction} ${selfname}: $*"
- else
- echo -en "${creeol}[${lightgreen} START ${default}] $*"
- fi
- fn_sleep_time
- echo -en "\n"
-}
-
-# On-Screen - Interactive messages
-##################################
-
-# No More Room in Hell Debug
-# =================================
-fn_print_header() {
- echo -e ""
- echo -e "${lightyellow}${gamename} ${commandaction}${default}"
- echo -e "=================================${default}"
-}
-
-# Complete!
-fn_print_complete() {
- echo -en "${green}Complete!${default} $*"
- fn_sleep_time
-}
-
-fn_print_complete_nl() {
- echo -e "${green}Complete!${default} $*"
- fn_sleep_time
-}
-
-# Failure!
-fn_print_failure() {
- echo -en "${red}Failure!${default} $*"
- fn_sleep_time
-}
-
-fn_print_failure_nl() {
- echo -e "${red}Failure!${default} $*"
- fn_sleep_time
-}
-
-# Error!
-fn_print_error2() {
- echo -en "${red}Error!${default} $*"
- fn_sleep_time
-}
-
-fn_print_error2_nl() {
- echo -e "${red}Error!${default} $*"
- fn_sleep_time
-}
-
-# Warning!
-fn_print_warning() {
- echo -en "${lightyellow}Warning!${default} $*"
- fn_sleep_time
-}
-
-fn_print_warning_nl() {
- echo -e "${lightyellow}Warning!${default} $*"
- fn_sleep_time
-}
-
-# Information!
-fn_print_information() {
- echo -en "${cyan}Information!${default} $*"
- fn_sleep_time
-}
-
-fn_print_information_nl() {
- echo -e "${cyan}Information!${default} $*"
- fn_sleep_time
-}
-
-# Y/N Prompt
-fn_prompt_yn() {
- local prompt="$1"
- local initial="$2"
-
- if [ "${initial}" == "Y" ]; then
- prompt+=" [Y/n] "
- elif [ "${initial}" == "N" ]; then
- prompt+=" [y/N] "
- else
- prompt+=" [y/n] "
- fi
-
- while true; do
- read -e -i "${initial}" -p "${prompt}" -r yn
- case "${yn}" in
- [Yy] | [Yy][Ee][Ss]) return 0 ;;
- [Nn] | [Nn][Oo]) return 1 ;;
- *) echo -e "Please answer yes or no." ;;
- esac
- done
-}
-
-# Prompt for message
-fn_prompt_message() {
- while true; do
- unset prompt
- local prompt="$1"
- read -e -p "${prompt}" -r answer
- if fn_prompt_yn "Continue" Y; then
- break
- fi
- done
- echo "${answer}"
-}
-
-# On-Screen End of Line
-##################################
-
-# YES
-fn_print_yes_eol() {
- echo -en "${cyan}YES${default}"
- fn_sleep_time
-}
-
-fn_print_yes_eol_nl() {
- echo -e "${cyan}YES${default}"
- fn_sleep_time
-}
-
-# NO
-fn_print_no_eol() {
- echo -en "${red}NO${default}"
- fn_sleep_time
-}
-
-fn_print_no_eol_nl() {
- echo -e "${red}NO${default}"
- fn_sleep_time
-}
-
-# OK
-fn_print_ok_eol() {
- echo -en "${green}OK${default}"
- fn_sleep_time
-}
-
-fn_print_ok_eol_nl() {
- echo -e "${green}OK${default}"
- fn_sleep_time
-}
-
-# FAIL
-fn_print_fail_eol() {
- echo -en "${red}FAIL${default}"
- fn_sleep_time
-}
-
-fn_print_fail_eol_nl() {
- echo -e "${red}FAIL${default}"
- fn_sleep_time
-}
-
-# ERROR
-fn_print_error_eol() {
- echo -en "${red}ERROR${default}"
- fn_sleep_time
-}
-
-fn_print_error_eol_nl() {
- echo -e "${red}ERROR${default}"
- fn_sleep_time
-}
-
-# WAIT
-fn_print_wait_eol() {
- echo -en "${cyan}WAIT${default}"
- fn_sleep_time
-}
-
-fn_print_wait_eol_nl() {
- echo -e "${cyan}WAIT${default}"
- fn_sleep_time
-}
-
-# WARN
-fn_print_warn_eol() {
- echo -en "${lightyellow}WARN${default}"
- fn_sleep_time
-}
-
-fn_print_warn_eol_nl() {
- echo -e "${lightyellow}WARN${default}"
- fn_sleep_time
-}
-
-# INFO
-fn_print_info_eol() {
- echo -en "${cyan}INFO${default}"
- fn_sleep_time
-}
-
-fn_print_info_eol_nl() {
- echo -e "${cyan}INFO${default}"
- fn_sleep_time
-}
-
-# QUERYING
-fn_print_querying_eol() {
- echo -en "${cyan}QUERYING${default}"
- fn_sleep_time
-}
-
-fn_print_querying_eol_nl() {
- echo -e "${cyan}QUERYING${default}"
- fn_sleep_time
-}
-
-# CHECKING
-fn_print_checking_eol() {
- echo -en "${cyan}CHECKING${default}"
- fn_sleep_time
-}
-
-fn_print_checking_eol_nl() {
- echo -e "${cyan}CHECKING${default}"
- fn_sleep_time
-}
-
-# DELAY
-fn_print_delay_eol() {
- echo -en "${green}DELAY${default}"
- fn_sleep_time
-}
-
-fn_print_delay_eol_nl() {
- echo -e "${green}DELAY${default}"
- fn_sleep_time
-}
-
-# CANCELED
-fn_print_canceled_eol() {
- echo -en "${lightyellow}CANCELED${default}"
- fn_sleep_time
-}
-
-fn_print_canceled_eol_nl() {
- echo -e "${lightyellow}CANCELED${default}"
- fn_sleep_time
-}
-
-# REMOVED
-fn_print_removed_eol() {
- echo -en "${red}REMOVED${default}"
- fn_sleep_time
-}
-
-fn_print_removed_eol_nl() {
- echo -e "${red}REMOVED${default}"
- fn_sleep_time
-}
-
-# UPDATE
-fn_print_update_eol() {
- echo -en "${cyan}UPDATE${default}"
- fn_sleep_time
-}
-
-fn_print_update_eol_nl() {
- echo -e "${cyan}UPDATE${default}"
- fn_sleep_time
-}
-
-fn_print_ascii_logo() {
- echo -e ""
- echo -e " mdMMMMbm"
- echo -e " mMMMMMMMMMMm"
- echo -e " mMMMMMMMMMMMMm"
- echo -e " mMMMMMMMMMMMMMMm"
- echo -e " hMMMV^VMMV^VMMMh"
- echo -e " MMMMM MM MMMMM"
- echo -e " hMMs vv sMMh"
- echo -e " hMMM: :MMMh"
- echo -e " .hMMMh hMMMh."
- echo -e " -dMMMh ${lightgrey}__${default} hMMMd-"
- echo -e " :mMMMs ${lightgrey}||${default} sMMMm:"
- echo -e " :MMMM+ ${lightgrey}||${default} ${red}_${default} +NMMN:"
- echo -e " .mMMM+ ${lightgrey}========${default} +MMMm."
- echo -e " yMMMy ${darkgrey}##############${default} yMMMy"
- echo -e " mMMM: ${darkgrey}##############${default} :MMMm"
- echo -e " mMM ${lightyellow}nn${default} ${lightyellow}nn${default} ${lightyellow}nn${default} ${lightyellow}nn${default} MMm"
- echo -e " o ${lightyellow}nNNNNNNNn${default} ${lightyellow}nNNNNNNNn${default} o"
- echo -e " ${lightyellow}nNNNNNNNNNn${default} ${lightyellow}nNNNNNNNNNn${default}"
- echo -e " ${lightyellow}nNNNNNNNNNNN${default} ${lightyellow}NNNNNNNNNNNn${default}"
- echo -e " ${lightyellow}+NNNNNNNNN:${default} ${lightyellow}:NNNNNNNNN+${default}"
- echo -e " ${lightyellow}nNNNNNNN${default} /\ ${lightyellow}NNNNNNNn${default}"
- echo -e " ${lightyellow}nnnnn${default} db ${lightyellow}nnnnn${default}"
- echo -e ""
- echo -e "${lightyellow}888${default} ${lightyellow}d8b${default} ${default}.d8888b. .d8888b. 888b d888"
- echo -e "${lightyellow}888 Y8P ${default}d88P Y88b d88P Y88b 8888b d8888"
- echo -e "${lightyellow}888${default} ${default}888${default} 888 Y88b. 88888b.d88888"
- echo -e "${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}88888b.${default} ${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}888${default} 888 Y888b. 888Y88888P888"
- echo -e "${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}88b${default} ${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}Y8bd8P${default} 888 88888 Y88b. 888 Y888P 888"
- echo -e "${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}X88K${default} 888 888 888 888 Y8P 888"
- echo -e "${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}Y88b${default} ${lightyellow}88Y${default} ${lightyellow}.d8pq8b.${default} Y88b d88P Y88b d88P 888 * 888"
- echo -e "${lightyellow}LinuxGSM${default} ${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}Y8888Y${default} ${lightyellow}888${default} ${lightyellow}888${default} Y2012P88 Y8888P 888 888"
- echo -e ""
-}
-
-fn_print_restart_warning() {
- fn_print_warn "${selfname} will be restarted"
- fn_script_log_warn "${selfname} will be restarted"
- totalseconds=3
- for seconds in {3..1}; do
- fn_print_warn "${selfname} will be restarted: ${totalseconds}"
- totalseconds=$((totalseconds - 1))
- sleep 1
- if [ "${seconds}" == "0" ]; then
- break
- fi
- done
- fn_print_warn_nl "${selfname} will be restarted"
-}
-
-# Functions below are used to ensure that logs and UI correctly reflect the command it is actually running.
-# Useful when a command has to call upon another command causing the other command to overrite commandname variables
-
-# Used to remember the command that ran first.
-fn_firstcommand_set() {
- if [ -z "${firstcommandname}" ]; then
- firstcommandname="${commandname}"
- firstcommandaction="${commandaction}"
- fi
-}
-
-# Used to reset commandname variables to the command the script ran first.
-fn_firstcommand_reset() {
- commandname="${firstcommandname}"
- commandaction="${firstcommandaction}"
-}
diff --git a/lgsm/functions/core_modules.sh b/lgsm/functions/core_modules.sh
deleted file mode 100644
index 80e890d1a7..0000000000
--- a/lgsm/functions/core_modules.sh
+++ /dev/null
@@ -1,816 +0,0 @@
-#!/bin/bash
-# LinuxGSM core_modules.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Defines all modules to allow download and execution of modules using fn_fetch_module.
-# This module is called first before any other module. Without this file other modules will not load.
-
-moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-modulesversion="v23.3.1"
-
-# Core
-
-core_dl.sh() {
- modulefile="${FUNCNAME[0]}"
- if [ "$(type fn_fetch_core_dl 2> /dev/null)" ]; then
- fn_fetch_core_dl "lgsm/modules" "core_dl.sh" "${modulesdir}" "chmodx" "run" "noforcedl" "nohash"
- else
- fn_bootstrap_fetch_file_github "lgsm/modules" "core_dl.sh" "${modulesdir}" "chmodx" "run" "noforcedl" "nohash"
- fi
-}
-
-core_messages.sh() {
- modulefile="${FUNCNAME[0]}"
- if [ "$(type fn_fetch_core_dl 2> /dev/null)" ]; then
- fn_fetch_core_dl "lgsm/modules" "core_messages.sh" "${modulesdir}" "chmodx" "run" "noforcedl" "nohash"
- else
- fn_bootstrap_fetch_file_github "lgsm/modules" "core_messages.sh" "${modulesdir}" "chmodx" "run" "noforcedl" "nohash"
- fi
-}
-
-core_legacy.sh() {
- modulefile="${FUNCNAME[0]}"
- if [ "$(type fn_fetch_core_dl 2> /dev/null)" ]; then
- fn_fetch_core_dl "lgsm/modules" "core_legacy.sh" "${modulesdir}" "chmodx" "run" "noforcedl" "nohash"
- else
- fn_bootstrap_fetch_file_github "lgsm/modules" "core_legacy.sh" "${modulesdir}" "chmodx" "run" "noforcedl" "nohash"
- fi
-}
-
-core_exit.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-core_getopt.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-core_trap.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-core_steamcmd.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-core_github.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-# Commands
-
-command_backup.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-command_console.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-command_debug.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-command_details.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-command_sponsor.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-command_postdetails.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-command_test_alert.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-command_monitor.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-command_start.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-command_stop.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-command_validate.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-command_install.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-command_install_resources_mta.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-install_squad_license.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-command_mods_install.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-command_mods_update.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-command_mods_remove.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-command_fastdl.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-command_ts3_server_pass.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-command_restart.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-command_skeleton.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-command_wipe.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-command_send.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-# Checks
-
-check.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-check_config.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-check_deps.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-check_executable.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-check_glibc.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-check_ip.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-check_last_update.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-check_logs.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-check_permissions.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-check_root.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-check_status.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-check_steamcmd.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-check_system_dir.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-check_system_requirements.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-check_tmuxception.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-check_version.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-# Compress
-
-compress_unreal2_maps.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-compress_ut99_maps.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-# Mods
-
-mods_list.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-mods_core.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-# Dev
-
-command_dev_clear_modules.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-command_dev_debug.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-command_dev_detect_deps.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-command_dev_detect_glibc.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-command_dev_detect_ldd.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-command_dev_query_raw.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-# Fix
-
-fix.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_ark.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_av.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_arma3.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_armar.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_bt.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_bo.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_cmw.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_csgo.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_dst.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_hw.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_ins.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_kf.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_kf2.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_lo.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_mcb.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_mta.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_nmrih.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_onset.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_ro.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_rust.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_rw.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_sfc.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_st.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_steamcmd.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_terraria.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_tf2.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_ut3.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_rust.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_samp.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_sdtd.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_sof2.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_squad.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_ts3.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_ut2k4.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_ut.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_unt.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_vh.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_wurm.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fix_zmr.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-# Info
-
-info_distro.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-info_game.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-info_messages.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-info_stats.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-# Alert
-
-alert.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-alert_discord.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-alert_email.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-alert_ifttt.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-alert_mailgun.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-alert_pushbullet.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-alert_pushover.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-alert_gotify.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-alert_telegram.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-alert_rocketchat.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-alert_slack.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-# Logs
-
-core_logs.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-# Query
-
-query_gamedig.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-# Update
-
-command_update_modules.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-command_update_linuxgsm.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-command_update.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-command_check_update.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-update_ts3.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-update_minecraft.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-update_minecraft_bedrock.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-update_papermc.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-update_mta.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-update_factorio.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-update_jediknight2.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-update_steamcmd.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-update_vintagestory.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-update_ut99.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-fn_update_modules.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-#
-## Installer modules
-#
-
-fn_autoinstall() {
- autoinstall=1
- command_install.sh
-}
-
-install_complete.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-install_config.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-install_factorio_save.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-install_dst_token.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-install_eula.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-install_gsquery.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-install_gslt.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-install_header.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-install_logs.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-install_retry.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-install_server_dir.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-install_server_files.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-install_stats.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-install_steamcmd.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-install_ts3.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-install_ts3db.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-install_ut2k4.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-install_dl_ut2k4.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-install_ut2k4_key.sh() {
- modulefile="${FUNCNAME[0]}"
- fn_fetch_module
-}
-
-# Calls code required for legacy servers
-core_legacy.sh
-
-# Creates tmp dir if missing
-if [ ! -d "${tmpdir}" ]; then
- mkdir -p "${tmpdir}"
-fi
-
-# Creates lock dir if missing
-if [ ! -d "${lockdir}" ]; then
- mkdir -p "${lockdir}"
-fi
-
-# Calls on-screen messages (bootstrap)
-core_messages.sh
-
-#Calls file downloader (bootstrap)
-core_dl.sh
-
-# Calls the global Ctrl-C trap
-core_trap.sh
diff --git a/lgsm/functions/core_steamcmd.sh b/lgsm/functions/core_steamcmd.sh
deleted file mode 100644
index 77dd12d5ee..0000000000
--- a/lgsm/functions/core_steamcmd.sh
+++ /dev/null
@@ -1,334 +0,0 @@
-#!/bin/bash
-# LinuxGSM core_steamcmd.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Core functions for SteamCMD
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-fn_install_steamcmd() {
- if [ "${shortname}" == "ark" ] && [ "${installsteamcmd}" == "1" ]; then
- steamcmddir="${serverfiles}/Engine/Binaries/ThirdParty/SteamCMD/Linux"
- fi
- if [ ! -d "${steamcmddir}" ]; then
- mkdir -p "${steamcmddir}"
- fi
- fn_fetch_file "http://media.steampowered.com/client/steamcmd_linux.tar.gz" "" "" "" "${tmpdir}" "steamcmd_linux.tar.gz" "nochmodx" "norun" "noforce" "nohash"
- fn_dl_extract "${tmpdir}" "steamcmd_linux.tar.gz" "${steamcmddir}"
- chmod +x "${steamcmddir}/steamcmd.sh"
-}
-
-fn_check_steamcmd_user() {
- # Checks if steamuser is setup.
- if [ "${steamuser}" == "username" ]; then
- fn_print_fail_nl "Steam login not set. Update steamuser in ${configdirserver}"
- echo -e " * Change steamuser=\"username\" to a valid steam login."
- if [ -d "${lgsmlogdir}" ]; then
- fn_script_log_fatal "Steam login not set. Update steamuser in ${configdirserver}"
- fi
- core_exit.sh
- fi
- # Anonymous user is set if steamuser is missing.
- if [ -z "${steamuser}" ]; then
- if [ -d "${lgsmlogdir}" ]; then
- fn_script_log_info "Login to SteamCMD as: anonymous"
- fi
- steamuser="anonymous"
- steampass=''
- else
- if [ -d "${lgsmlogdir}" ]; then
- fn_script_log_info "Login to SteamCMD as: ${steamuser}"
- fi
- fi
-}
-
-fn_check_steamcmd() {
- # Checks if SteamCMD exists when starting or updating a server.
- # Only install if steamcmd package is missing or steamcmd dir is missing.
- if [ ! -f "${steamcmddir}/steamcmd.sh" ] && [ -z "$(command -v steamcmd 2> /dev/null)" ]; then
- if [ "${commandname}" == "INSTALL" ]; then
- fn_install_steamcmd
- else
- fn_print_warn_nl "SteamCMD is missing"
- fn_script_log_warn "SteamCMD is missing"
- fn_install_steamcmd
- fi
- elif [ "${commandname}" == "INSTALL" ]; then
- fn_print_information "SteamCMD is already installed..."
- fn_print_ok_eol_nl
- fi
-}
-
-fn_check_steamcmd_dir() {
- # Worksround that pre-installs the correct steam directories to ensure all packages use the correct Standard.
- # https://github.com/ValveSoftware/steam-for-linux/issues/6976#issuecomment-610446347
-
- # Create Steam installation directory.
- if [ ! -d "${XDG_DATA_HOME:="${HOME}/.local/share"}/Steam" ]; then
- mkdir -p "${XDG_DATA_HOME:="${HOME}/.local/share"}/Steam"
- fi
-
- # Create common Steam directory.
- if [ ! -d "${HOME}/.steam" ]; then
- mkdir -p "${HOME}/.steam"
- fi
-
- # Symbolic links to Steam installation directory.
- if [ ! -L "${HOME}/.steam/root" ]; then
- if [ -d "${HOME}/.steam/root" ]; then
- rm -f "${HOME:?}/.steam/root"
- fi
- ln -s "${XDG_DATA_HOME:="${HOME}/.local/share"}/Steam" "${HOME}/.steam/root"
- fi
-
- if [ ! -L "${HOME}/.steam/steam" ]; then
- if [ -d "${HOME}/.steam/steam" ]; then
- rm -rf "${HOME}/.steam/steam"
- fi
- ln -s "${XDG_DATA_HOME:="${HOME}/.local/share"}/Steam" "${HOME}/.steam/steam"
- fi
-}
-
-fn_check_steamcmd_dir_legacy() {
- # Remove old Steam installation directories ~/Steam and ${rootdir}/steamcmd
- if [ -d "${rootdir}/steamcmd" ] && [ "${steamcmddir}" == "${XDG_DATA_HOME:="${HOME}/.local/share"}/Steam" ]; then
- rm -rf "${rootdir:?}/steamcmd"
- fi
-
- if [ -d "${HOME}/Steam" ] && [ "${steamcmddir}" == "${XDG_DATA_HOME:="${HOME}/.local/share"}/Steam" ]; then
- rm -rf "${HOME}/Steam"
- fi
-}
-
-fn_check_steamcmd_steamapp() {
- # Check that steamapp directory fixes issue #3481
- if [ ! -d "${serverfiles}/steamapps" ]; then
- mkdir -p "${serverfiles}/steamapps"
- fi
-}
-
-fn_check_steamcmd_ark() {
- # Checks if SteamCMD exists in
- # Engine/Binaries/ThirdParty/SteamCMD/Linux
- # to allow ark mods to work
- if [ ! -f "${serverfiles}/Engine/Binaries/ThirdParty/SteamCMD/Linux/steamcmd.sh" ]; then
- installsteamcmd=1
- if [ "${commandname}" == "INSTALL" ]; then
- fn_install_steamcmd
- else
- fn_print_warn_nl "ARK mods SteamCMD is missing"
- fn_script_log_warn "ARK mods SteamCMD is missing"
- fn_install_steamcmd
- fi
- elif [ "${commandname}" == "INSTALL" ]; then
- fn_print_information "ARK mods SteamCMD is already installed..."
- fn_print_ok_eol_nl
- fi
-}
-
-fn_check_steamcmd_clear() {
- # Will remove steamcmd dir if steamcmd package is installed.
- if [ "$(command -v steamcmd 2> /dev/null)" ] && [ -d "${rootdir}/steamcmd" ]; then
- rm -rf "${steamcmddir:?}"
- exitcode=$?
- if [ "${exitcode}" != 0 ]; then
- fn_script_log_fatal "Removing ${rootdir}/steamcmd"
- else
- fn_script_log_pass "Removing ${rootdir}/steamcmd"
- fi
- fi
-}
-
-fn_check_steamcmd_exec() {
- if [ "$(command -v steamcmd 2> /dev/null)" ]; then
- steamcmdcommand="steamcmd"
- else
- steamcmdcommand="./steamcmd.sh"
- fi
-}
-
-fn_update_steamcmd_localbuild() {
- # Gets local build info.
- fn_print_dots "Checking local build: ${remotelocation}"
- fn_appmanifest_check
- # Uses appmanifest to find local build.
- localbuild=$(grep buildid "${appmanifestfile}" | tr '[:blank:]"' ' ' | tr -s ' ' | cut -d\ -f3)
-
- # Set branch to public if no custom branch.
- if [ -z "${branch}" ]; then
- branch="public"
- fi
-
- # Checks if localbuild variable has been set.
- if [ -z "${localbuild}" ]; then
- fn_print_fail "Checking local build: ${remotelocation}: missing local build info"
- fn_script_log_fatal "Missing local build info"
- core_exit.sh
- else
- fn_print_ok "Checking local build: ${remotelocation}"
- fn_script_log_pass "Checking local build"
- fi
-}
-
-fn_update_steamcmd_remotebuild() {
- # Get remote build info.
- if [ -d "${steamcmddir}" ]; then
- cd "${steamcmddir}" || exit
- fi
-
- # Removes appinfo.vdf as a fix for not always getting up to date version info from SteamCMD.
- if [ "$(find "${HOME}" -type f -name "appinfo.vdf" | wc -l)" -ne "0" ]; then
- find "${HOME}" -type f -name "appinfo.vdf" -exec rm -f {} \;
- fi
-
- # password for branch not needed to check the buildid
- remotebuildversion=$(${steamcmdcommand} +login "${steamuser}" "${steampass}" +app_info_update 1 +app_info_print "${appid}" +quit | sed -e '/"branches"/,/^}/!d' | sed -n "/\"${branch}\"/,/}/p" | grep -m 1 buildid | tr -cd '[:digit:]')
-
- if [ "${firstcommandname}" != "INSTALL" ]; then
- fn_print_dots "Checking remote build: ${remotelocation}"
- # Checks if remotebuildversion variable has been set.
- if [ -z "${remotebuildversion}" ] || [ "${remotebuildversion}" == "null" ]; then
- fn_print_fail "Checking remote build: ${remotelocation}"
- fn_script_log_fatal "Checking remote build"
- core_exit.sh
- else
- fn_print_ok "Checking remote build: ${remotelocation}"
- fn_script_log_pass "Checking remote build"
- fi
- else
- # Checks if remotebuild variable has been set.
- if [ -z "${remotebuildversion}" ] || [ "${remotebuildversion}" == "null" ]; then
- fn_print_failure "Unable to get remote build"
- fn_script_log_fatal "Unable to get remote build"
- core_exit.sh
- fi
- fi
-}
-
-fn_update_steamcmd_compare() {
- fn_print_dots "Checking for update: ${remotelocation}"
- if [ "${localbuild}" != "${remotebuildversion}" ] || [ "${forceupdate}" == "1" ]; then
- fn_print_ok_nl "Checking for update: ${remotelocation}"
- echo -en "\n"
- echo -e "Update available"
- echo -e "* Local build: ${red}${localbuild}${default}"
- echo -e "* Remote build: ${green}${remotebuildversion}${default}"
- if [ -n "${branch}" ]; then
- echo -e "* Branch: ${branch}"
- fi
- if [ -n "${betapassword}" ]; then
- echo -e "* Branch password: ${betapassword}"
- fi
- echo -e "https://steamdb.info/app/${appid}/"
- echo -en "\n"
- fn_script_log_info "Update available"
- fn_script_log_info "Local build: ${localbuild}"
- fn_script_log_info "Remote build: ${remotebuildversion}"
- if [ -n "${branch}" ]; then
- fn_script_log_info "Branch: ${branch}"
- fi
- if [ -n "${betapassword}" ]; then
- fn_script_log_info "Branch password: ${betapassword}"
- fi
- fn_script_log_info "${localbuild} > ${remotebuildversion}"
-
- if [ "${commandname}" == "UPDATE" ]; then
- unset updateonstart
- check_status.sh
- # If server stopped.
- if [ "${status}" == "0" ]; then
- fn_dl_steamcmd
- # If server started.
- else
- fn_print_restart_warning
- exitbypass=1
- command_stop.sh
- fn_firstcommand_reset
- exitbypass=1
- fn_dl_steamcmd
- exitbypass=1
- command_start.sh
- fn_firstcommand_reset
- fi
- unset exitbypass
- date +%s > "${lockdir}/lastupdate.lock"
- alert="update"
- elif [ "${commandname}" == "CHECK-UPDATE" ]; then
- alert="check-update"
- fi
- alert.sh
- else
- fn_print_ok_nl "Checking for update: ${remotelocation}"
- echo -en "\n"
- echo -e "No update available"
- echo -e "* Local build: ${green}${localbuild}${default}"
- echo -e "* Remote build: ${green}${remotebuildversion}${default}"
- if [ -n "${branch}" ]; then
- echo -e "* Branch: ${branch}"
- fi
- if [ -n "${betapassword}" ]; then
- echo -e "* Branch password: ${betapassword}"
- fi
- echo -e "https://steamdb.info/app/${appid}/"
- echo -en "\n"
- fn_script_log_info "No update available"
- fn_script_log_info "Local build: ${localbuild}"
- fn_script_log_info "Remote build: ${remotebuildversion}"
- if [ -n "${branch}" ]; then
- fn_script_log_info "Branch: ${branch}"
- fi
- if [ -n "${betapassword}" ]; then
- fn_script_log_info "Branch password: ${betapassword}"
- fi
- fi
-}
-
-fn_appmanifest_info() {
- appmanifestfile=$(find -L "${serverfiles}" -type f -name "appmanifest_${appid}.acf")
- appmanifestfilewc=$(find -L "${serverfiles}" -type f -name "appmanifest_${appid}.acf" | wc -l)
-}
-
-fn_appmanifest_check() {
- fn_appmanifest_info
- # Multiple or no matching appmanifest files may sometimes be present.
- # This error is corrected if required.
- if [ "${appmanifestfilewc}" -ge "2" ]; then
- fn_print_error "Multiple appmanifest_${appid}.acf files found"
- fn_script_log_error "Multiple appmanifest_${appid}.acf files found"
- fn_print_dots "Removing x${appmanifestfilewc} appmanifest_${appid}.acf files"
- for appfile in ${appmanifestfile}; do
- rm -f "${appfile:?}"
- done
- appmanifestfilewc1="${appmanifestfilewc}"
- fn_appmanifest_info
- # if error can not be resolved.
- if [ "${appmanifestfilewc}" -ge "2" ]; then
- fn_print_fail "Unable to remove x${appmanifestfilewc} appmanifest_${appid}.acf files"
- fn_script_log_fatal "Unable to remove x${appmanifestfilewc} appmanifest_${appid}.acf files"
- echo -e "* Check user permissions"
- for appfile in ${appmanifestfile}; do
- echo -e " ${appfile}"
- done
- core_exit.sh
- else
- fn_print_ok "Removed x${appmanifestfilewc1} appmanifest_${appid}.acf files"
- fn_script_log_pass "Removed x${appmanifestfilewc1} appmanifest_${appid}.acf files"
- fn_print_info_nl "Forcing update to correct issue"
- fn_script_log_info "Forcing update to correct issue"
- fn_dl_steamcmd
- fi
- elif [ "${appmanifestfilewc}" -eq "0" ]; then
- fn_print_error_nl "No appmanifest_${appid}.acf found"
- fn_script_log_error "No appmanifest_${appid}.acf found"
- fn_print_info_nl "Forcing update to correct issue"
- fn_script_log_info "Forcing update to correct issue"
- fn_dl_steamcmd
- fn_appmanifest_info
- if [ "${appmanifestfilewc}" -eq "0" ]; then
- fn_print_fail_nl "Still no appmanifest_${appid}.acf found"
- fn_script_log_fatal "Still no appmanifest_${appid}.acf found"
- core_exit.sh
- fi
- fi
-}
diff --git a/lgsm/functions/core_trap.sh b/lgsm/functions/core_trap.sh
deleted file mode 100644
index ae2b794706..0000000000
--- a/lgsm/functions/core_trap.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash
-# LinuxGSM core_trap.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Handles CTRL-C trap to give an exit code.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-fn_exit_trap() {
- if [ -z "${exitcode}" ]; then
- exitcode=$?
- fi
- echo -e ""
- if [ -z "${exitcode}" ]; then
- exitcode=0
- fi
- core_exit.sh
-}
-
-# trap to give an exit code.
-trap fn_exit_trap INT
diff --git a/lgsm/functions/fix.sh b/lgsm/functions/fix.sh
deleted file mode 100644
index 57f6a91fac..0000000000
--- a/lgsm/functions/fix.sh
+++ /dev/null
@@ -1,88 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Overall function for managing fixes.
-# Runs functions that will fix an issue.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-# Messages that are displayed for some fixes.
-fn_fix_msg_start() {
- fn_print_dots "Applying ${fixname} fix: ${gamename}"
- fn_print_info "Applying ${fixname} fix: ${gamename}"
- fn_script_log_info "Applying ${fixname} fix: ${gamename}"
-}
-
-fn_fix_msg_start_nl() {
- fn_print_dots "Applying ${fixname} fix: ${gamename}"
- fn_print_info_nl "Applying ${fixname} fix: ${gamename}"
- fn_script_log_info "Applying ${fixname} fix: ${gamename}"
-}
-
-fn_fix_msg_end() {
- if [ $? != 0 ]; then
- fn_print_error_nl "Applying ${fixname} fix: ${gamename}"
- fn_script_log_error "Applying ${fixname} fix: ${gamename}"
- else
- fn_print_ok_nl "Applying ${fixname} fix: ${gamename}"
- fn_script_log_pass "Applying ${fixname} fix: ${gamename}"
- fi
-}
-
-fn_exists_fix() {
- local short="${1:?}"
-
- if [ "$(type -t "fix_${short}.sh")" == 'function' ]; then
- return 0
- else
- return 1
- fi
-}
-
-fn_apply_fix() {
- local phase_message="${1:?}"
- local short="${2:?}"
-
- if fn_exists_fix "${short}"; then
- "fix_${short}.sh"
- else
- fn_print_error_nl "${shortname} is marked to apply pre start fix but there is no fix registered"
- fi
-}
-
-apply_pre_start_fix=(arma3 armar ark av bt bo csgo cmw dst hw ins nmrih onset rust rw sdtd sfc sof2 squad st tf2 terraria ts3 mcb mta unt vh wurm zmr)
-apply_post_install_fix=(av kf kf2 lo ro samp ut2k4 ut ut3)
-
-# validate registered fixes for safe development
-for fix in "${apply_pre_start_fix[@]}" "${apply_post_install_fix[@]}"; do
- if ! fn_exists_fix "${fix}"; then
- fn_print_fail_nl "fix_${fix}.sh is registered but doesn't exist. Typo or did you miss to modify core_functions.sh?"
- exitcode 1
- core_exit.sh
- fi
-done
-
-# Fixes that are run on start.
-if [ "${commandname}" != "INSTALL" ] && [ -z "${fixbypass}" ]; then
- if [ "${appid}" ]; then
- fix_steamcmd.sh
- fi
-
- if grep -qEe "(^|\s)${shortname}(\s|$)" <<< "${apply_pre_start_fix[@]}"; then
- fn_apply_fix "pre start" "${shortname}"
- fi
-fi
-
-# Fixes that are run on install only.
-if [ "${commandname}" == "INSTALL" ]; then
- if grep -qEe "(^|\s)${shortname}(\s|$)" <<< "${apply_post_install_fix[@]}"; then
- echo -e ""
- echo -e "${lightyellow}Applying Post-Install Fixes${default}"
- echo -e "================================="
- fn_sleep_time
- postinstall=1
- fn_apply_fix "post install" "${shortname}"
- fi
-fi
diff --git a/lgsm/functions/fix_ark.sh b/lgsm/functions/fix_ark.sh
deleted file mode 100644
index f8e0447e3e..0000000000
--- a/lgsm/functions/fix_ark.sh
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_ark.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves various issues with ARK: Survival Evolved.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-# removes mulitple appworkshop_346110.acf if found.
-steamappsfilewc="$(find "${HOME}" -name appworkshop_346110.acf | wc -l)"
-if [ "${steamappsfilewc}" -gt "1" ]; then
- fixname="multiple appworkshop acf files"
- fn_fix_msg_start
- find "${HOME}" -name appworkshop_346110.acf -exec rm -f {} \;
- fn_fix_msg_end
-elif [ "${steamappsfilewc}" -eq "1" ]; then
- # Steam mods directory selecter
- # This allows LinxuGSM to select either ~/.steam or ~/Steam. depending on what is being used
- steamappsfile=$(find "${HOME}" -name appworkshop_346110.acf)
- steamappsdir=$(dirname "${steamappsfile}")
- steamappspath=$(
- cd "${steamappsdir}" || return
- cd ../
- pwd
- )
-
- # removes the symlink if exists.
- # fixes issue with older versions of LinuxGSM linking to /home/arkserver/steamcmd
- if [ -L "${serverfiles}/Engine/Binaries/ThirdParty/SteamCMD/Linux" ]; then
- fixname="broken SteamCMD symlink"
- fn_fix_msg_start
- unlink "${serverfiles:?}/Engine/Binaries/ThirdParty/SteamCMD/Linux"
- fn_fix_msg_end
- check_steamcmd.sh
- fi
-
- # removed ARK steamcmd directory if steamcmd is missing.
- if [ ! -f "${serverfiles}/Engine/Binaries/ThirdParty/SteamCMD/Linux/steamcmd.sh" ]; then
- fixname="remove invalid ARK SteamCMD directory"
- fn_fix_msg_start
- rm -rf "${serverfiles:?}/Engine/Binaries/ThirdParty/SteamCMD/Linux"
- fn_fix_msg_end
- check_steamcmd.sh
- fi
-
- # if the steamapps symlink is incorrect unlink it.
- if [ -d "${serverfiles}/Engine/Binaries/ThirdParty/SteamCMD/Linux" ] && [ -L "${serverfiles}/Engine/Binaries/ThirdParty/SteamCMD/Linux/steamapps" ] && [ "$(readlink "${serverfiles}/Engine/Binaries/ThirdParty/SteamCMD/Linux/steamapps")" != "${steamappspath}" ]; then
- fixname="incorrect steamapps symlink"
- fn_fix_msg_start
- unlink "${serverfiles:?}/Engine/Binaries/ThirdParty/SteamCMD/Linux/steamapps"
- fn_fix_msg_end
- fi
-
- # Put symlink to steamapps directory into the ARK SteamCMD directory to link the downloaded mods to the correct location.
- if [ ! -L "${serverfiles}/Engine/Binaries/ThirdParty/SteamCMD/Linux/steamapps" ]; then
- fixname="steamapps symlink"
- fn_fix_msg_start
- ln -s "${steamappspath}" "${serverfiles}/Engine/Binaries/ThirdParty/SteamCMD/Linux/steamapps"
- fn_fix_msg_end
- fi
-fi
diff --git a/lgsm/functions/fix_arma3.sh b/lgsm/functions/fix_arma3.sh
deleted file mode 100644
index bbf14c9d20..0000000000
--- a/lgsm/functions/fix_arma3.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_arma3.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves an issue with ARMA3.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-# Fixes: 20150 Segmentation fault (core dumped) error.
-if [ ! -d "${XDG_DATA_HOME:="${HOME}/.local/share"}/Arma 3" ] || [ ! -d "${XDG_DATA_HOME:="${HOME}/.local/share"}/Arma 3 - Other Profiles" ]; then
- fixname="20150 Segmentation fault (core dumped)"
- fn_fix_msg_start
- mkdir -p "${XDG_DATA_HOME:="${HOME}/.local/share"}/Arma 3 - Other Profiles"
- fn_fix_msg_end
-fi
diff --git a/lgsm/functions/fix_armar.sh b/lgsm/functions/fix_armar.sh
deleted file mode 100644
index 9db42f51ad..0000000000
--- a/lgsm/functions/fix_armar.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_armar.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves an issue with Arma Reforger.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-# Fixes: Profile directory doesn't exist.
-# Issue Link: https://feedback.bistudio.com/T164845
-if [ ! -d "${serverprofilefullpath}" ]; then
- fixname="Profile directory doesn't exist"
- fn_fix_msg_start
- mkdir -p "${serverprofilefullpath}"
- fn_fix_msg_end
-fi
diff --git a/lgsm/functions/fix_av.sh b/lgsm/functions/fix_av.sh
deleted file mode 100644
index a61a8be658..0000000000
--- a/lgsm/functions/fix_av.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_av.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves startup issue with Avorion
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${serverfiles}:${serverfiles}/linux64"
-
-# Generates the server config if it doesn't exist.
-if [ ! -f "${servercfgfullpath}" ]; then
- startparameters="--datapath ${avdatapath} --galaxy-name ${selfname} --init-folders-only"
- fn_print_information "starting ${gamename} server to generate configs."
- fn_sleep_time
- cd "${systemdir}" || exit
- eval "${executable} ${startparameters}"
-fi
diff --git a/lgsm/functions/fix_bo.sh b/lgsm/functions/fix_bo.sh
deleted file mode 100644
index 4536918748..0000000000
--- a/lgsm/functions/fix_bo.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_hw.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves various issues with Ballistic Overkill.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${serverfiles}:${serverfiles}/BODS_Data/Plugins/x86_64"
diff --git a/lgsm/functions/fix_bt.sh b/lgsm/functions/fix_bt.sh
deleted file mode 100644
index 07fd61ce57..0000000000
--- a/lgsm/functions/fix_bt.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_bt.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves an issue with Barotrauma.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-# Fixes: Missing user data directory error.
-if [ ! -d "${XDG_DATA_HOME:="${HOME}/.local/share"}/Daedalic Entertainment GmbH/Barotrauma" ]; then
- fixname="Missing user data directory error."
- fn_fix_msg_start
- mkdir -p "${XDG_DATA_HOME:="${HOME}/.local/share"}/Daedalic Entertainment GmbH/Barotrauma"
- fn_fix_msg_end
-fi
-
-# check if startscript is with windows line endings and reformat it
-if file -b "${serverfiles}${executable:1}" | grep -q CRLF; then
- fixname="Convert ${executable:2} to unix file format"
- fn_fix_msg_start
- dos2unix -q "${serverfiles}${executable:1}"
- fn_fix_msg_end
-fi
diff --git a/lgsm/functions/fix_cmw.sh b/lgsm/functions/fix_cmw.sh
deleted file mode 100644
index 192f483e80..0000000000
--- a/lgsm/functions/fix_cmw.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_cmw.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves the issue of the not starting server on linux
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-if [ ! -f "${executabledir}/steam_appid.txt" ]; then
- fixname="steam_appid.txt"
- fn_fix_msg_start
- echo 219640 > "${executabledir}/steam_appid.txt"
- fn_fix_msg_end
-fi
-
-if [ ! -f "${servercfgfullpath}" ]; then
- fn_fix_msg_start
- fixname="copy config"
- mkdir "${servercfgdir}"
- cp "${systemdir}/UDKGame/Config/"*.ini "${servercfgdir}"
- fn_fix_msg_end
-fi
diff --git a/lgsm/functions/fix_csgo.sh b/lgsm/functions/fix_csgo.sh
deleted file mode 100644
index a393f2fd9c..0000000000
--- a/lgsm/functions/fix_csgo.sh
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_csgo.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves various issues with CS:GO.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-# Fixes: server not always creating steam_appid.txt file.
-if [ ! -f "${serverfiles}/steam_appid.txt" ]; then
- fixname="730 steam_appid.txt"
- fn_fix_msg_start
- echo -n "730" >> "${serverfiles}/steam_appid.txt"
- fn_fix_msg_end
-fi
-
-# Fixes: Error parsing BotProfile.db - unknown attribute 'Rank'".
-if [ -f "${systemdir}/botprofile.db" ] && grep "^\s*Rank" "${systemdir}/botprofile.db" > /dev/null 2>&1; then
- fixname="botprofile.db"
- fn_fix_msg_start
- sed -i 's/^\s*Rank/\t\/\/Rank/g' "${systemdir}/botprofile.db" > /dev/null 2>&1
- fn_fix_msg_end
-fi
-
-# Fixes: Unknown command "cl_bobamt_vert" and exec: couldn't exec joystick.cfg.
-if [ -f "${servercfgdir}/valve.rc" ] && grep -E '^\s*exec\s*(default|joystick)\.cfg' "${servercfgdir}/valve.rc" > /dev/null 2>&1; then
- fixname="valve.rc"
- fn_fix_msg_start
- sed -i 's/^\s*exec\s*default.cfg/\/\/exec default.cfg/g' "${servercfgdir}/valve.rc" > /dev/null 2>&1
- sed -i 's/^\s*exec\s*joystick.cfg/\/\/exec joystick.cfg/g' "${servercfgdir}/valve.rc" > /dev/null 2>&1
- fn_fix_msg_end
-fi
-
-# Fixes: Detected engine 11 but could not load: /home/csgo/serverfiles/bin/libgcc_s.so.1: version `GCC_7.0.0' not found (required by /lib/i386-linux-gnu/libstdc++.so.6)
-libgccc_so="${serverfiles}/bin/libgcc_s.so.1"
-if [ -f "${libgccc_so}" ]; then
- fixname="libgcc_s.so.1 move away"
- fn_fix_msg_start
- mv -v "${libgccc_so}" "${libgccc_so}.bck"
- fn_fix_msg_end
-fi
diff --git a/lgsm/functions/fix_dst.sh b/lgsm/functions/fix_dst.sh
deleted file mode 100644
index e30507dc9e..0000000000
--- a/lgsm/functions/fix_dst.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_dst.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves various issues with Don't Starve Together.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-# Fixes: ./dontstarve_dedicated_server_nullrenderer: ./lib32/libcurl-gnutls.so.4: no version information available (required by ./dontstarve_dedicated_server_nullrenderer).
-# Issue only occures on CentOS as libcurl-gnutls.so.4 is called libcurl.so.4 on CentOS.
-if [ -f "/etc/redhat-release" ] && [ ! -f "${serverfiles}/bin/lib32/libcurl-gnutls.so.4" ]; then
- fixname="libcurl-gnutls.so.4"
- fn_fix_msg_start
- ln -s "/usr/lib/libcurl.so.4" "${serverfiles}/bin/lib32/libcurl-gnutls.so.4"
- fn_fix_msg_end
-fi
diff --git a/lgsm/functions/fix_hw.sh b/lgsm/functions/fix_hw.sh
deleted file mode 100644
index af06924dbb..0000000000
--- a/lgsm/functions/fix_hw.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_hw.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves various issues with Hurtworld.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${serverfiles}:${serverfiles}/Hurtworld_Data/Plugins/x86_64"
diff --git a/lgsm/functions/fix_ins.sh b/lgsm/functions/fix_ins.sh
deleted file mode 100644
index 21a979c4cf..0000000000
--- a/lgsm/functions/fix_ins.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_ins.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves various issues with Insurgency.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-# Fixes: ./srcds_linux: error while loading shared libraries: libtier0.so: cannot open shared object file: No such file or directory.
-
-export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${serverfiles}:${serverfiles}/bin"
-
-# Fixes: issue #529 - gamemode not passed to debug or start.
-
-if [ "${commandname}" == "DEBUG" ]; then
- defaultmap="\"${defaultmap}\""
-else
- defaultmap="\\\"${defaultmap}\\\""
-fi
diff --git a/lgsm/functions/fix_kf.sh b/lgsm/functions/fix_kf.sh
deleted file mode 100644
index e749a2d278..0000000000
--- a/lgsm/functions/fix_kf.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_kf.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves various issues with Killing Floor.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-echo -e "Applying WebAdmin ROOst.css fix."
-echo -e "http://forums.tripwireinteractive.com/showpost.php?p=585435&postcount=13"
-sed -i 's/none}/none;/g' "${serverfiles}/Web/ServerAdmin/ROOst.css"
-sed -i 's/underline}/underline;/g' "${serverfiles}/Web/ServerAdmin/ROOst.css"
-fn_sleep_time
-echo -e "Applying WebAdmin CharSet fix."
-echo -e "http://forums.tripwireinteractive.com/showpost.php?p=442340&postcount=1"
-sed -i 's/CharSet="iso-8859-1"/CharSet="utf-8"/g' "${systemdir}/UWeb.int"
-fn_sleep_time
-echo -e "applying server name fix."
-fn_sleep_time
-echo -e "forcing server restart..."
-fn_sleep_time
-exitbypass=1
-command_start.sh
-fn_firstcommand_reset
-sleep 5
-exitbypass=1
-command_stop.sh
-fn_firstcommand_reset
-exitbypass=1
-command_start.sh
-fn_firstcommand_reset
-sleep 5
-exitbypass=1
-command_stop.sh
-fn_firstcommand_reset
diff --git a/lgsm/functions/fix_kf2.sh b/lgsm/functions/fix_kf2.sh
deleted file mode 100644
index b680a99378..0000000000
--- a/lgsm/functions/fix_kf2.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_kf2.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves various issues with Killing Floor 2.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-startparameters="\"${defaultmap}?Game=KFGameContent.KFGameInfo_VersusSurvival\""
-
-fn_print_information "starting ${gamename} server to generate configs."
-fn_sleep_time
-exitbypass=1
-command_start.sh
-fn_firstcommand_reset
-sleep 10
-exitbypass=1
-command_stop.sh
-fn_firstcommand_reset
diff --git a/lgsm/functions/fix_lo.sh b/lgsm/functions/fix_lo.sh
deleted file mode 100644
index eec2ebd360..0000000000
--- a/lgsm/functions/fix_lo.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_lo.sh function
-# Author: Daniel Gibbs
-# Website: https://linuxgsm.com
-# Description: Resolves installation issue with Last Oasis
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-appidfile=${executabledir}/steam_appid.txt
-if [ ! -f "${appidfile}" ]; then
- fn_print_information "adding ${appidfile} to ${gamename} server."
- fn_sleep_time
- echo "903950" > "${appidfile}"
-else
- fn_print_information "${appidfile} already exists. No action to be taken."
- fn_sleep_time
-fi
diff --git a/lgsm/functions/fix_mcb.sh b/lgsm/functions/fix_mcb.sh
deleted file mode 100644
index 4768a40cfe..0000000000
--- a/lgsm/functions/fix_mcb.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_mcb.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves possible startup issue with Minecraft Bedrock.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-# official docs state that the server should be started with: LD_LIBRARY_PATH=. ./bedrock_server
-export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${serverfiles}"
diff --git a/lgsm/functions/fix_mta.sh b/lgsm/functions/fix_mta.sh
deleted file mode 100644
index 2c92e8d126..0000000000
--- a/lgsm/functions/fix_mta.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_mta.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Installs the libmysqlclient for database functions on the server.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-if [ ! -f "${lgsmdir}/lib/libmysqlclient.so.16" ]; then
- fixname="libmysqlclient16"
- fn_fix_msg_start_nl
- fn_sleep_time
- fn_fetch_file "https://nightly.mtasa.com/files/modules/64/libmysqlclient.so.16" "" "" "" "${lgsmdir}/lib" "libmysqlclient.so.16" "chmodx" "norun" "noforce" "6c188e0f8fb5d7a29f4bc413b9fed6c2"
- fn_fix_msg_end
-fi
diff --git a/lgsm/functions/fix_nmrih.sh b/lgsm/functions/fix_nmrih.sh
deleted file mode 100644
index 4bb70c6f9a..0000000000
--- a/lgsm/functions/fix_nmrih.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_nmrih.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Create symlinks for renamed No More Room In Hell serverfiles.
-# Solution from Steam Community post: https://steamcommunity.com/app/224260/discussions/2/1732089092441769414/
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-ln -s "${serverfiles}/bin/vphysics_srv.so" "${serverfiles}/bin/vphysics.so"
-ln -s "${serverfiles}/bin/studiorender_srv.so" "${serverfiles}/bin/studiorender.so"
-ln -s "${serverfiles}/bin/soundemittersystem_srv.so" "${serverfiles}/bin/soundemittersystem.so"
-ln -s "${serverfiles}/bin/shaderapiempty_srv.so" "${serverfiles}/bin/shaderapiempty.so"
-ln -s "${serverfiles}/bin/scenefilecache_srv.so" "${serverfiles}/bin/scenefilecache.so"
-ln -s "${serverfiles}/bin/replay_srv.so" "${serverfiles}/bin/replay.so"
-ln -s "${serverfiles}/bin/materialsystem_srv.so" "${serverfiles}/bin/materialsystem.so"
diff --git a/lgsm/functions/fix_onset.sh b/lgsm/functions/fix_onset.sh
deleted file mode 100644
index e4183999df..0000000000
--- a/lgsm/functions/fix_onset.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_onset.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves various issues with Onset.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${serverfiles}"
-
-# Fixes: Failed loading "mariadb": libmariadbclient.so.18: cannot open shared object file: No such file or directory
-# Issue only occures on CentOS as libmariadbclient.so.18 is called libmariadb.so.3 on CentOS.
-if [ -f "/etc/redhat-release" ] && [ ! -f "${serverfiles}/libmariadbclient.so.18" ] && [ -f "/usr/lib64/libmariadb.so.3" ]; then
- fixname="libmariadbclient.so.18"
- fn_fix_msg_start
- ln -s "/usr/lib64/libmariadb.so.3" "${serverfiles}/libmariadbclient.so.18"
- fn_fix_msg_end
-fi
diff --git a/lgsm/functions/fix_ro.sh b/lgsm/functions/fix_ro.sh
deleted file mode 100644
index 895c7c2da7..0000000000
--- a/lgsm/functions/fix_ro.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_ro.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves various issues with Red Orchestra.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-echo -e "Applying WebAdmin ROOst.css fix."
-echo -e "http://forums.tripwireinteractive.com/showpost.php?p=585435&postcount=13"
-sed -i 's/none}/none;/g' "${serverfiles}/Web/ServerAdmin/ROOst.css"
-sed -i 's/underline}/underline;/g' "${serverfiles}/Web/ServerAdmin/ROOst.css"
-fn_sleep_time
-echo -e "Applying WebAdmin CharSet fix."
-echo -e "http://forums.tripwireinteractive.com/showpost.php?p=442340&postcount=1"
-sed -i 's/CharSet="iso-8859-1"/CharSet="utf-8"/g' "${systemdir}/uweb.int"
-fn_sleep_time
-echo -e "Applying Steam AppID fix."
-sed -i 's/1210/1200/g' "${systemdir}/steam_appid.txt"
-fn_sleep_time
-echo -e "applying server name fix."
-fn_sleep_time
-echo -e "forcing server restart..."
-fn_sleep_time
-exitbypass=1
-command_start.sh
-fn_firstcommand_reset
-sleep 5
-exitbypass=1
-command_stop.sh
-fn_firstcommand_reset
-exitbypass=1
-command_start.sh
-fn_firstcommand_reset
-sleep 5
-exitbypass=1
-command_stop.sh
-fn_firstcommand_reset
diff --git a/lgsm/functions/fix_rust.sh b/lgsm/functions/fix_rust.sh
deleted file mode 100644
index 5f407e89f8..0000000000
--- a/lgsm/functions/fix_rust.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_rust.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves startup issue with Rust.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-# Fixes: [Raknet] Server Shutting Down (Shutting Down).
-export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${serverfiles}:${serverfiles}/RustDedicated_Data/Plugins/x86_64"
-
-# Part of random seed feature.
-# If seed is not defined by user generate a seed file.
-if [ -z "${seed}" ] || [ "${seed}" == "0" ]; then
- if [ ! -f "${datadir}/${selfname}-seed.txt" ]; then
- shuf -i 1-2147483647 -n 1 > "${datadir}/${selfname}-seed.txt"
- seed="$(cat "${datadir}/${selfname}-seed.txt")"
- fn_print_info_nl "Generating new random seed (${cyan}${seed}${default})"
- fn_script_log_pass "Generating new random seed (${cyan}${seed}${default})"
- fi
- seed="$(cat "${datadir}/${selfname}-seed.txt")"
- randomseed=1
-fi
-
-# If Carbon mod is installed, run enviroment.sh
-if [ -f "${serverfiles}/carbon/tools/environment.sh" ]; then
- fn_print_info_nl "Running Carbon environment.sh"
- fn_script_log_info "Running Carbon environment.sh"
- # shellcheck source=/dev/null
- source "${serverfiles}/carbon/tools/environment.sh"
-fi
diff --git a/lgsm/functions/fix_rw.sh b/lgsm/functions/fix_rw.sh
deleted file mode 100644
index aef41a7031..0000000000
--- a/lgsm/functions/fix_rw.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_rw.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves various issues with Rising World.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${serverfiles}:${serverfiles}/linux64"
diff --git a/lgsm/functions/fix_samp.sh b/lgsm/functions/fix_samp.sh
deleted file mode 100644
index a88bf154f6..0000000000
--- a/lgsm/functions/fix_samp.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_sfc.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves issue that the default rcon password is not changed
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-if [ -f "${servercfgfullpath}" ]; then
- # check if default password is set "changeme"
- currentpass=$(grep -E "^rcon_password" "${servercfgfullpath}" | sed 's/^rcon_password //')
- defaultpass="changeme"
- # check if default password is set
- if [ "${currentpass}" == "${defaultpass}" ]; then
- fixname="change default rcon password"
- fn_fix_msg_start
- fn_script_log_info "changing rcon/admin password."
- random=$(tr -dc A-Za-z0-9_ < /dev/urandom | head -c 8 | xargs)
- rconpass="admin${random}"
- sed -i "s/rcon_password changeme/rcon_password ${rconpass}/g" "${servercfgfullpath}"
- fn_fix_msg_end
- fi
- # check if the hostname is the default name
- currenthostname=$(grep -E "^hostname" "${servercfgfullpath}" | sed 's/^hostname //')
- defaulthostname="SA-MP 0.3 Server"
- if [ "${currenthostname}" == "${defaulthostname}" ]; then
- fixname="change default hostname"
- fn_fix_msg_start
- fn_script_log_info "changing default hostname to LinuxGSM"
- sed -i "s/hostname ${defaulthostname}/hostname LinuxGSM/g" "${servercfgfullpath}"
- fn_fix_msg_end
- fi
-fi
diff --git a/lgsm/functions/fix_sdtd.sh b/lgsm/functions/fix_sdtd.sh
deleted file mode 100644
index e93db7970f..0000000000
--- a/lgsm/functions/fix_sdtd.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_sdtd.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves various issues with 7 Days to Die.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${serverfiles}/7DaysToDieServer_Data/Plugins/x86_64"
diff --git a/lgsm/functions/fix_sfc.sh b/lgsm/functions/fix_sfc.sh
deleted file mode 100644
index 51b95b9d52..0000000000
--- a/lgsm/functions/fix_sfc.sh
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_sfc.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves various issues with Source Forts Classic.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-if [ ! -f "${serverfiles}/bin/datacache.so" ]; then
- ln -s "${serverfiles}/bin/datacache_srv.so" "${serverfiles}/bin/datacache.so"
-fi
-
-if [ ! -f "${serverfiles}/bin/dedicated.so" ]; then
- ln -s "${serverfiles}/bin/dedicated_srv.so" "${serverfiles}/bin/dedicated.so"
-fi
-
-if [ ! -f "${serverfiles}/bin/engine.so" ]; then
- ln -s "${serverfiles}/bin/engine_srv.so" "${serverfiles}/bin/engine.so"
-fi
-
-if [ ! -f "${serverfiles}/bin/materialsystem.so" ]; then
- ln -s "${serverfiles}/bin/materialsystem_srv.so" "${serverfiles}/bin/materialsystem.so"
-fi
-
-if [ ! -f "${serverfiles}/bin/replay.so" ]; then
- ln -s "${serverfiles}/bin/replay_srv.so" "${serverfiles}/bin/replay.so"
-fi
-
-if [ ! -f "${serverfiles}/bin/shaderapiempty.so" ]; then
- ln -s "${serverfiles}/bin/shaderapiempty_srv.so" "${serverfiles}/bin/shaderapiempty.so"
-fi
-
-if [ ! -f "${serverfiles}/bin/soundemittersystem.so" ]; then
- ln -s "${serverfiles}/bin/soundemittersystem_srv.so" "${serverfiles}/bin/soundemittersystem.so"
-fi
-
-if [ ! -f "${serverfiles}/bin/studiorender.so" ]; then
- ln -s "${serverfiles}/bin/studiorender_srv.so" "${serverfiles}/bin/studiorender.so"
-fi
-
-if [ ! -f "${serverfiles}/bin/vphysics.so" ]; then
- ln -s "${serverfiles}/bin/vphysics_srv.so" "${serverfiles}/bin/vphysics.so"
-fi
-
-if [ ! -f "${serverfiles}/bin/scenefilecache.so" ]; then
- ln -s "${serverfiles}/bin/scenefilecache_srv.so" "${serverfiles}/bin/scenefilecache.so"
-fi
diff --git a/lgsm/functions/fix_sof2.sh b/lgsm/functions/fix_sof2.sh
deleted file mode 100644
index 002f429528..0000000000
--- a/lgsm/functions/fix_sof2.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_rust.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves various issues with Soldier of Fortune 2.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-# Fixes: error while loading shared libraries: libcxa.so.1
-export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${serverfiles}"
diff --git a/lgsm/functions/fix_squad.sh b/lgsm/functions/fix_squad.sh
deleted file mode 100644
index 7d5929b5df..0000000000
--- a/lgsm/functions/fix_squad.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_squad.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves various issues with Squad.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-# As the server base dir changed for the game, we need to migrate the default config from the old to the new location
-oldservercfg="${serverfiles}/Squad/ServerConfig/${servercfg}"
-if [ -f "${oldservercfg}" ] && [ -f "${servercfgfullpath}" ]; then
- # diff old and new config - if it is different move the old config over the new one
- if [ "$(diff -c "${oldservercfg}" "${servercfgfullpath}" | wc -l)" -gt 0 ]; then
- fixname="Migrate server config to new Game folder"
- fn_fix_msg_start
- mv -v "${oldservercfg}" "${servercfgfullpath}"
- fn_fix_msg_end
- else
- fixname="remove the same config from old configdir"
- fn_fix_msg_start
- rm -f "${oldservercfg}"
- fn_fix_msg_end
-
- fi
-fi
diff --git a/lgsm/functions/fix_st.sh b/lgsm/functions/fix_st.sh
deleted file mode 100644
index b9fb5b084a..0000000000
--- a/lgsm/functions/fix_st.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_rust.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves startup issue with Stationeers.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-# Fixes: [Raknet] Server Shutting Down (Shutting Down).
-export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${serverfiles}:${serverfiles}/rocketstation_DedicatedServer_Data/Plugins/x86_64"
diff --git a/lgsm/functions/fix_steamcmd.sh b/lgsm/functions/fix_steamcmd.sh
deleted file mode 100644
index 9644208dc7..0000000000
--- a/lgsm/functions/fix_steamcmd.sh
+++ /dev/null
@@ -1,141 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_steamcmd.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves various issues related to SteamCMD.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-# function to simplify the steamclient.so fix
-# example
-# fn_fix_steamclient_so 32|64 (bit) "${serverfiles}/linux32/"
-fn_fix_steamclient_so() {
- # $1 type of fix 32 or 64 as possible values
- # $2 as destination where the lib will be copied to
- if [ "$1" == "32" ]; then
- # steamclient.so x86 fix.
- if [ ! -f "${2}/steamclient.so" ]; then
- fixname="steamclient.so x86"
- fn_fix_msg_start
- if [ ! -d "${2}" ]; then
- mkdir -p "${2}"
- fi
- if [ -f "${HOME}/.steam/steamcmd/linux32/steamclient.so" ]; then
- cp "${HOME}/.steam/steamcmd/linux32/steamclient.so" "${2}/steamclient.so"
- elif [ -f "${steamcmddir}/linux32/steamclient.so" ]; then
- cp "${steamcmddir}/linux32/steamclient.so" "${2}/steamclient.so"
- elif [ -f "${HOME}/.local/share/Steam/steamcmd/linux32/steamclient.so" ]; then
- cp "${HOME}/.local/share/Steam/steamcmd/linux32/steamclient.so" "${2}/steamclient.so"
- fi
- fn_fix_msg_end
- fi
- elif [ "$1" == "64" ]; then
- # steamclient.so x86_64 fix.
- if [ ! -f "${2}/steamclient.so" ]; then
- fixname="steamclient.so x86_64"
- fn_fix_msg_start
- if [ ! -d "${2}" ]; then
- mkdir -p "${2}"
- fi
- if [ -f "${HOME}/.steam/steamcmd/linux64/steamclient.so" ]; then
- cp "${HOME}/.steam/steamcmd/linux64/steamclient.so" "${2}/steamclient.so"
- elif [ -f "${steamcmddir}/linux64/steamclient.so" ]; then
- cp "${steamcmddir}/linux64/steamclient.so" "${2}/steamclient.so"
- elif [ -f "${HOME}/.local/share/Steam/steamcmd/linux64/steamclient.so" ]; then
- cp "${HOME}/.local/share/Steam/steamcmd/linux64/steamclient.so" "${2}/steamclient.so"
- fi
- fn_fix_msg_end
- fi
- fi
-}
-
-# Helps fix: [S_API FAIL] SteamAPI_Init() failed; unable to locate a running instance of Steam,or a local steamclient.so.
-steamsdk64="${HOME}/.steam/sdk64"
-steamclientsdk64="${steamsdk64}/steamclient.so"
-# remove any old unlinked versions of steamclient.so
-if [ -f "${steamclientsdk64}" ]; then
- if [ "$(stat -c '%h' "${steamclientsdk64}")" -eq 1 ]; then
- fixname="steamclient.so sdk64 - remove old file"
- fn_fix_msg_start
- rm -f "${steamclientsdk64}"
- fn_fix_msg_end
- fi
-fi
-
-# place new hardlink for the file to the disk
-if [ ! -f "${steamclientsdk64}" ]; then
- fixname="steamclient.so sdk64 hardlink"
- fn_fix_msg_start
- if [ ! -d "${steamsdk64}" ]; then
- mkdir -p "${steamsdk64}"
- fi
- if [ -f "${HOME}/.steam/steamcmd/linux64/steamclient.so" ]; then
- ln "${HOME}/.steam/steamcmd/linux64/steamclient.so" "${steamclientsdk64}"
- elif [ -f "${steamcmddir}/linux64/steamclient.so" ]; then
- ln "${steamcmddir}/linux64/steamclient.so" "${steamclientsdk64}"
- elif [ -f "${HOME}/.local/share/Steam/steamcmd/linux64/steamclient.so" ]; then
- ln "${HOME}/.local/share/Steam/steamcmd/linux64/steamclient.so" "${steamclientsdk64}"
- else
- fn_print_fail_nl "Could not copy any steamclient.so 64bit for the gameserver"
- fi
- fn_fix_msg_end
-fi
-
-# Helps fix: [S_API FAIL] SteamAPI_Init() failed; unable to locate a running instance of Steam,or a local steamclient.so.
-steamsdk32="${HOME}/.steam/sdk32"
-steamclientsdk32="${HOME}/.steam/sdk32/steamclient.so"
-if [ -f "${steamclientsdk32}" ]; then
- if [ " $(stat -c '%h' "${steamclientsdk32}")" -eq 1 ]; then
- fixname="steamclient.so sdk32 - remove old file"
- fn_fix_msg_start
- rm -f "${steamclientsdk32}"
- fn_fix_msg_end
- fi
-fi
-
-# place new hardlink for the file to the disk
-if [ ! -f "${steamclientsdk32}" ]; then
- fixname="steamclient.so sdk32 link"
- fn_fix_msg_start
- if [ ! -d "${steamsdk32}" ]; then
- mkdir -p "${steamsdk32}"
- fi
- if [ -f "${HOME}/.steam/steamcmd/linux32/steamclient.so" ]; then
- ln "${HOME}/.steam/steamcmd/linux32/steamclient.so" "${steamclientsdk32}"
- elif [ -f "${steamcmddir}/linux32/steamclient.so" ]; then
- ln "${steamcmddir}/linux32/steamclient.so" "${steamclientsdk32}"
- elif [ -f "${HOME}/.local/share/Steam/steamcmd/linux32/steamclient.so" ]; then
- ln "${HOME}/.local/share/Steam/steamcmd/linux32/steamclient.so" "${steamclientsdk32}"
- else
- fn_print_fail_nl "Could not copy any steamclient.so 32bit for the gameserver"
- fi
- fn_fix_msg_end
-fi
-
-# steamclient.so fixes
-if [ "${shortname}" == "bo" ]; then
- fn_fix_steamclient_so "32" "${serverfiles}/BODS_Data/Plugins/x86"
- fn_fix_steamclient_so "64" "${serverfiles}/BODS_Data/Plugins/x86_64"
-elif [ "${shortname}" == "cmw" ]; then
- fn_fix_steamclient_so "32" "${executabledir}/lib"
-elif [ "${shortname}" == "cs" ]; then
- fn_fix_steamclient_so "32" "${serverfiles}"
-elif [ "${shortname}" == "col" ]; then
- fn_fix_steamclient_so "64" "${serverfiles}"
-elif [ "${shortname}" == "ins" ]; then
- fn_fix_steamclient_so "32" "${serverfiles}/bin"
-elif [ "${shortname}" == "pz" ]; then
- fn_fix_steamclient_so "32" "${serverfiles}/linux32"
- fn_fix_steamclient_so "64" "${serverfiles}/linux64"
-elif [ "${shortname}" == "pvr" ]; then
- fn_fix_steamclient_so "64" "${executabledir}"
-elif [ "${shortname}" == "ss3" ]; then
- fn_fix_steamclient_so "32" "${serverfiles}/Bin"
-elif [ "${shortname}" == "tu" ]; then
- fn_fix_steamclient_so "64" "${executabledir}"
-elif [ "${shortname}" == "unt" ]; then
- fn_fix_steamclient_so "64" "${serverfiles}"
-elif [ "${shortname}" == "wurm" ]; then
- fn_fix_steamclient_so "64" "${serverfiles}/nativelibs"
-fi
diff --git a/lgsm/functions/fix_terraria.sh b/lgsm/functions/fix_terraria.sh
deleted file mode 100644
index 7758fdad96..0000000000
--- a/lgsm/functions/fix_terraria.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_terraria.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves an issue with Terraria.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-export TERM=xterm
diff --git a/lgsm/functions/fix_tf2.sh b/lgsm/functions/fix_tf2.sh
deleted file mode 100644
index 77e41a9698..0000000000
--- a/lgsm/functions/fix_tf2.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_tf2.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves various issues with Team Fortress 2.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-# Fixes: Team Fortress 2 Segmentation fault for Red-Hat Distros #2062.
-if [ -f "/etc/redhat-release" ] && [ ! -f "${serverfiles}/bin/libcurl-gnutls.so.4" ]; then
- fixname="libcurl-gnutls.so.4"
- fn_fix_msg_start
- ln -s "/usr/lib/libcurl.so.4" "${serverfiles}/bin/libcurl-gnutls.so.4"
- fn_fix_msg_end
-fi
diff --git a/lgsm/functions/fix_ts3.sh b/lgsm/functions/fix_ts3.sh
deleted file mode 100644
index 7c7387cb60..0000000000
--- a/lgsm/functions/fix_ts3.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_ts3.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves various issues with Teamspeak 3.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-# Fixes: makes libmariadb2 available #1924.
-if [ ! -f "${serverfiles}/libmariadb.so.2" ]; then
- fixname="libmariadb.so.2"
- fn_fix_msg_start
- cp "${serverfiles}/redist/libmariadb.so.2" "${serverfiles}/libmariadb.so.2"
- fn_fix_msg_end
-fi
-
-# Fixes: failed to register local accounting service: No such file or directory.
-accountingfile="/dev/shm/7gbhujb54g8z9hu43jre8"
-if [ -f "${accountingfile}" ] && [ "${status}" == "0" ]; then
- # Check permissions for the file if the current user owns it, if not exit.
- if [ "$(stat -c %U ${accountingfile})" == "$(whoami)" ]; then
- fixname="Delete file ${accountingfile}"
- fn_fix_msg_start
- rm -f "${accountingfile}"
- fn_fix_msg_end
- # file is not owned by the current user and needs to be deleted manually.
- else
- fn_print_error_nl "File ${accountingfile} is not owned by $(whoami) and needs to be deleted manually"
- fn_script_log_fatal "File ${accountingfile} is not owned by $(whoami) and needs to be deleted manually"
- core_exit.sh
- fi
-fi
diff --git a/lgsm/functions/fix_unt.sh b/lgsm/functions/fix_unt.sh
deleted file mode 100644
index eae2e63134..0000000000
--- a/lgsm/functions/fix_unt.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_rust.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves startup issue with Unturned.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${serverfiles}:${serverfiles}/Unturned_Headless_Data/Plugins/x86_64"
diff --git a/lgsm/functions/fix_ut.sh b/lgsm/functions/fix_ut.sh
deleted file mode 100644
index 2e6686a8d5..0000000000
--- a/lgsm/functions/fix_ut.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_ut.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves various issues with Unreal Tournament.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-#Set Binary Executable
-echo -e "chmod +x ${executabledir}/${executable}"
-chmod +x "${executabledir}/${executable}"
-fn_sleep_time
diff --git a/lgsm/functions/fix_ut2k4.sh b/lgsm/functions/fix_ut2k4.sh
deleted file mode 100644
index 49610e4b69..0000000000
--- a/lgsm/functions/fix_ut2k4.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_ut2k4.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves various issues with Unreal Tournament 2004.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-echo -e "applying WebAdmin ut2003.css fix."
-echo -e "http://forums.tripwireinteractive.com/showpost.php?p=585435&postcount=13"
-sed -i 's/none}/none;/g' "${serverfiles}/Web/ServerAdmin/ut2003.css"
-sed -i 's/underline}/underline;/g' "${serverfiles}/Web/ServerAdmin/ut2003.css"
-fn_sleep_time
-echo -e "applying WebAdmin CharSet fix."
-echo -e "http://forums.tripwireinteractive.com/showpost.php?p=442340&postcount=1"
-sed -i 's/CharSet="iso-8859-1"/CharSet="utf-8"/g' "${systemdir}/UWeb.int"
-fn_sleep_time
-echo -e "applying server name fix."
-fn_sleep_time
-echo -e "forcing server restart."
-fn_sleep_time
-exitbypass=1
-command_start.sh
-fn_firstcommand_reset
-sleep 5
-exitbypass=1
-command_stop.sh
-fn_firstcommand_reset
-exitbypass=1
-command_start.sh
-fn_firstcommand_reset
-sleep 5
-exitbypass=1
-command_stop.sh
-fn_firstcommand_reset
diff --git a/lgsm/functions/fix_ut3.sh b/lgsm/functions/fix_ut3.sh
deleted file mode 100644
index 6bd26a53a8..0000000000
--- a/lgsm/functions/fix_ut3.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_ut2.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves various issues with Unreal Tournament 3.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-startparameters="server VCTF-Suspense?Game=UTGameContent.UTVehicleCTFGame_Content?bIsDedicated=true?bIsLanMatch=false?bUsesStats=false?bShouldAdvertise=false?PureServer=1?bAllowJoinInProgress=true?ConfigSubDir=${selfname} -port=${port} -queryport=${queryport} -multihome=${ip} -nohomedir -unattended -log=${gamelog}"
-
-fn_print_information "starting ${gamename} server to generate configs."
-fn_sleep_time
-exitbypass=1
-command_start.sh
-fn_firstcommand_reset
-sleep 10
-exitbypass=1
-command_stop.sh
-fn_firstcommand_reset
diff --git a/lgsm/functions/fix_vh.sh b/lgsm/functions/fix_vh.sh
deleted file mode 100644
index a90c5d0b0f..0000000000
--- a/lgsm/functions/fix_vh.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_rust.sh function
-# Author: Alasdair Haig
-# Website: https://linuxgsm.com
-# Description: Resolves startup issue with Valheim
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-export LD_LIBRARY_PATH=./linux64:$LD_LIBRARY_PATH
-
-modsdir="${lgsmdir}/mods"
-modsinstalledlistfullpath="${modsdir}/installed-mods.txt"
-if [ -f "${modsinstalledlistfullpath}" ]; then
- # special check if Valheim Plus is installed
- if grep -qE "^valheimplus" "${modsinstalledlistfullpath}"; then
- if ! grep -qE "^executable=\"./start_server_bepinex.sh\"" "${configdirserver}/${selfname}.cfg"; then
- echo 'executable="./start_server_bepinex.sh"' >> "${configdirserver}/${selfname}.cfg"
- executable="./start_server_bepinex.sh"
- fi
- fi
- # special exports for BepInEx if installed
- if grep -qE "^bepinexvh" "${modsinstalledlistfullpath}"; then
- fn_print_info_nl "BepInEx install detected, applying start exports"
- fn_script_log_info "BepInEx install detected, applying start exports"
- # exports for BepInEx framework from script start_server_bepinex.sh
- export DOORSTOP_ENABLE=TRUE
- export DOORSTOP_INVOKE_DLL_PATH=./BepInEx/core/BepInEx.Preloader.dll
- export DOORSTOP_CORLIB_OVERRIDE_PATH=./unstripped_corlib
-
- export LD_LIBRARY_PATH="./doorstop_libs:${LD_LIBRARY_PATH}"
- export LD_PRELOAD="libdoorstop_x64.so:${LD_PRELOAD}"
-
- export SteamAppId=892970
- fi
-fi
diff --git a/lgsm/functions/fix_wurm.sh b/lgsm/functions/fix_wurm.sh
deleted file mode 100644
index aba24d382b..0000000000
--- a/lgsm/functions/fix_wurm.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_wurm.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves various issues with Wurm Unlimited.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-# First run requires start with no parms.
-# After first run new dirs are created.
-if [ ! -d "${serverfiles}/Creative" ]; then
- parmsbypass=1
- fixbypass=1
- exitbypass=1
- command_start.sh
- fn_firstcommand_reset
- sleep 10
- exitbypass=1
- command_stop.sh
- fn_firstcommand_reset
- unset parmsbypass
-fi
diff --git a/lgsm/functions/fix_zmr.sh b/lgsm/functions/fix_zmr.sh
deleted file mode 100644
index 491c366380..0000000000
--- a/lgsm/functions/fix_zmr.sh
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_sfc.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Resolves various issues with Zombie Master: Reborn.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-if [ ! -f "${serverfiles}/bin/datacache.so" ]; then
- ln -s "${serverfiles}/bin/datacache_srv.so" "${serverfiles}/bin/datacache.so"
-fi
-
-if [ ! -f "${serverfiles}/bin/dedicated.so" ]; then
- ln -s "${serverfiles}/bin/dedicated_srv.so" "${serverfiles}/bin/dedicated.so"
-fi
-
-if [ ! -f "${serverfiles}/bin/engine.so" ]; then
- ln -s "${serverfiles}/bin/engine_srv.so" "${serverfiles}/bin/engine.so"
-fi
-
-if [ ! -f "${serverfiles}/bin/materialsystem.so" ]; then
- ln -s "${serverfiles}/bin/materialsystem_srv.so" "${serverfiles}/bin/materialsystem.so"
-fi
-
-if [ ! -f "${serverfiles}/bin/replay.so" ]; then
- ln -s "${serverfiles}/bin/replay_srv.so" "${serverfiles}/bin/replay.so"
-fi
-
-if [ ! -f "${serverfiles}/bin/shaderapiempty.so" ]; then
- ln -s "${serverfiles}/bin/shaderapiempty_srv.so" "${serverfiles}/bin/shaderapiempty.so"
-fi
-
-if [ ! -f "${serverfiles}/bin/soundemittersystem.so" ]; then
- ln -s "${serverfiles}/bin/soundemittersystem_srv.so" "${serverfiles}/bin/soundemittersystem.so"
-fi
-
-if [ ! -f "${serverfiles}/bin/studiorender.so" ]; then
- ln -s "${serverfiles}/bin/studiorender_srv.so" "${serverfiles}/bin/studiorender.so"
-fi
-
-if [ ! -f "${serverfiles}/bin/vphysics.so" ]; then
- ln -s "${serverfiles}/bin/vphysics_srv.so" "${serverfiles}/bin/vphysics.so"
-fi
-
-if [ ! -f "${serverfiles}/bin/scenefilecache.so" ]; then
- ln -s "${serverfiles}/bin/scenefilecache_srv.so" "${serverfiles}/bin/scenefilecache.so"
-fi
diff --git a/lgsm/functions/info_distro.sh b/lgsm/functions/info_distro.sh
deleted file mode 100644
index 8c2a67adfd..0000000000
--- a/lgsm/functions/info_distro.sh
+++ /dev/null
@@ -1,281 +0,0 @@
-#!/bin/bash
-# LinuxGSM info_distro.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Variables providing useful info on the Operating System such as disk and performace info.
-# Used for command_details.sh, command_debug.sh and alert.sh.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-### Game Server pid
-if [ "${status}" == "1" ]; then
- gameserverpid="$(tmux -L "${sessionname}" list-sessions -F "#{session_name} #{pane_pid}" | grep "^${sessionname} " | awk '{print $NF}')"
- if [ "${engine}" == "source" ]; then
- srcdslinuxpid="$(ps -ef | grep -v grep | grep "${gameserverpid}" | grep srcds_linux | awk '{print $2}')"
- elif [ "${engine}" == "goldsrc" ]; then
- hldslinuxpid="$(ps -ef | grep -v grep | grep "${gameserverpid}" | grep hlds_linux | awk '{print $2}')"
- fi
-fi
-### Distro information
-
-## Distro
-# Returns architecture, kernel and distro/os.
-arch="$(uname -m)"
-kernel="$(uname -r)"
-
-# Distro Name - Ubuntu 16.04 LTS
-# Distro Version - 16.04
-# Distro ID - ubuntu
-# Distro Codename - xenial
-
-# Gathers distro info from various sources filling in missing gaps.
-distro_info_array=(os-release lsb_release hostnamectl debian_version redhat-release)
-for distro_info in "${distro_info_array[@]}"; do
- if [ -f "/etc/os-release" ] && [ "${distro_info}" == "os-release" ]; then
- distroname="$(grep "PRETTY_NAME" /etc/os-release | awk -F\= '{gsub(/"/,"",$2);print $2}')"
- distroversion="$(grep "VERSION_ID" /etc/os-release | awk -F\= '{gsub(/"/,"",$2);print $2}')"
- # Special var for rhel like distros to removed point in number e.g 8.4 to just 8.
- distroversionrh="$(sed -nr 's/^VERSION_ID="([0-9]*).+?"/\1/p' /etc/os-release)"
- distroid="$(grep "ID=" /etc/os-release | grep -v _ID | awk -F\= '{gsub(/"/,"",$2);print $2}')"
- distroidlike="$(grep "ID_LIKE=" /etc/os-release | grep -v _ID | awk -F\= '{gsub(/"/,"",$2);print $2}')"
- distrocodename="$(grep "VERSION_CODENAME" /etc/os-release | awk -F\= '{gsub(/"/,"",$2);print $2}')"
- elif [ "$(command -v lsb_release 2> /dev/null)" ] && [ "${distro_info}" == "lsb_release" ]; then
- if [ -z "${distroname}" ]; then
- distroname="$(lsb_release -sd)"
- elif [ -z "${distroversion}" ]; then
- distroversion="$(lsb_release -sr)"
- elif [ -z "${distroid}" ]; then
- distroid="$(lsb_release -si)"
- elif [ -z "${distrocodename}" ]; then
- distrocodename="$(lsb_release -sc)"
- fi
- elif [ "$(command -v hostnamectl 2> /dev/null)" ] && [ "${distro_info}" == "hostnamectl" ]; then
- if [ -z "${distroname}" ]; then
- distroname="$(hostnamectl | grep "Operating System" | sed 's/Operating System: //g')"
- fi
- elif [ -f "/etc/debian_version" ] && [ "${distro_info}" == "debian_version" ]; then
- if [ -z "${distroname}" ]; then
- distroname="Debian $(cat /etc/debian_version)"
- elif [ -z "${distroversion}" ]; then
- distroversion="$(cat /etc/debian_version)"
- elif [ -z "${distroid}" ]; then
- distroid="debian"
- fi
- elif [ -f "/etc/redhat-release" ] && [ "${distro_info}" == "redhat-release" ]; then
- if [ -z "${distroname}" ]; then
- distroname="$(cat /etc/redhat-release)"
- elif [ -z "${distroversion}" ]; then
- distroversion="$(rpm -qa \*-release | grep -Ei "oracle|redhat|centos|fedora" | cut -d"-" -f3)"
- elif [ -z "${distroid}" ]; then
- distroid="$(awk '{print $1}' /etc/redhat-release)"
- fi
- fi
-done
-
-# some RHEL based distros use 8.4 instead of just 8.
-if [[ "${distroidlike}" == *"rhel"* ]] || [ "${distroid}" == "rhel" ]; then
- distroversioncsv="${distroversionrh}"
-else
- distroversioncsv="${distroversion}"
-fi
-
-# Check if distro supported by distro vendor.
-if [ "$(command -v distro-info 2> /dev/null)" ]; then
- distrosunsupported="$(distro-info --unsupported)"
- distrosunsupported_array=("${distrosunsupported}")
- for distrounsupported in "${distrosunsupported_array[@]}"; do
- if [ "${distrounsupported}" == "${distrocodename}" ]; then
- distrosupport=unsupported
- break
- else
- distrosupport=supported
- fi
- done
-else
- distrosupport=unknown
-fi
-
-## Glibc version
-# e.g: 1.17
-glibcversion="$(ldd --version | sed -n '1s/.* //p')"
-
-## tmux version
-# e.g: tmux 1.6
-if [ ! "$(command -V tmux 2> /dev/null)" ]; then
- tmuxv="${red}NOT INSTALLED!${default}"
- tmuxvdigit="0"
-else
- tmuxvdigit="$(tmux -V | sed "s/tmux //" | sed -n '1 p' | tr -cd '[:digit:]')"
- if [ "${tmuxvdigit}" -lt "16" ]; then
- tmuxv="$(tmux -V) (>= 1.6 required for console log)"
- else
- tmuxv="$(tmux -V)"
- fi
-fi
-
-if [ "$(command -V java 2> /dev/null)" ]; then
- javaversion="$(java -version 2>&1 | grep "version")"
-fi
-
-if [ "$(command -v mono 2> /dev/null)" ]; then
- monoversion="$(mono --version 2>&1 | grep -Po '(?<=version )\d')"
-fi
-
-## Uptime
-uptime="$(< /proc/uptime)"
-uptime=${uptime/[. ]*/}
-minutes="$((uptime / 60 % 60))"
-hours="$((uptime / 60 / 60 % 24))"
-days="$((uptime / 60 / 60 / 24))"
-
-### Performance information
-
-## Average server load
-load="$(uptime | awk -F 'load average: ' '{ print $2 }')"
-
-## CPU information
-cpumodel="$(awk -F: '/model name/ {name=$2} END {print name}' /proc/cpuinfo | sed 's/^[ \t]*//;s/[ \t]*$//')"
-cpucores="$(awk -F: '/model name/ {core++} END {print core}' /proc/cpuinfo)"
-cpufreqency="$(awk -F: '/cpu MHz/ {freq=$2} END {print freq}' /proc/cpuinfo | sed 's/^[ \t]*//;s/[ \t]*$//')"
-# CPU usage of the game server pid
-if [ -n "${gameserverpid}" ]; then
- cpuused="$(ps --forest -o pcpu -g "${gameserverpid}" | awk '{s+=$1} END {print s}')"
- cpuusedmhz="$(echo "${cpufreqency} * ${cpuused} / 100" | bc)"
-fi
-
-## Memory information
-# Available RAM and swap.
-
-# Newer distros can use numfmt to give more accurate results.
-if [ "$(command -v numfmt 2> /dev/null)" ]; then
- # Issue #2005 - Kernel 3.14+ contains MemAvailable which should be used. All others will be calculated.
-
- # get the raw KB values of these fields.
- physmemtotalkb="$(grep MemTotal /proc/meminfo | awk '{print $2}')"
- physmemfreekb="$(grep ^MemFree /proc/meminfo | awk '{print $2}')"
- physmembufferskb="$(grep ^Buffers /proc/meminfo | awk '{print $2}')"
- physmemcachedkb="$(grep ^Cached /proc/meminfo | awk '{print $2}')"
- physmemreclaimablekb="$(grep ^SReclaimable /proc/meminfo | awk '{print $2}')"
-
- # check if MemAvailable Exists.
- if grep -q ^MemAvailable /proc/meminfo; then
- physmemactualfreekb="$(grep ^MemAvailable /proc/meminfo | awk '{print $2}')"
- else
- physmemactualfreekb="$((physmemfreekb + physmembufferskb + physmemcachedkb))"
- fi
-
- # Available RAM and swap.
- physmemtotalmb="$((physmemtotalkb / 1024))"
- physmemtotal="$(numfmt --to=iec --from=iec --suffix=B "${physmemtotalkb}K")"
- physmemfree="$(numfmt --to=iec --from=iec --suffix=B "${physmemactualfreekb}K")"
- physmemused="$(numfmt --to=iec --from=iec --suffix=B "$((physmemtotalkb - physmemfreekb - physmembufferskb - physmemcachedkb - physmemreclaimablekb))K")"
- physmemavailable="$(numfmt --to=iec --from=iec --suffix=B "${physmemactualfreekb}K")"
- physmemcached="$(numfmt --to=iec --from=iec --suffix=B "$((physmemcachedkb + physmemreclaimablekb))K")"
-
- swaptotal="$(numfmt --to=iec --from=iec --suffix=B "$(grep ^SwapTotal /proc/meminfo | awk '{print $2}')K")"
- swapfree="$(numfmt --to=iec --from=iec --suffix=B "$(grep ^SwapFree /proc/meminfo | awk '{print $2}')K")"
- swapused="$(numfmt --to=iec --from=iec --suffix=B "$(($(grep ^SwapTotal /proc/meminfo | awk '{print $2}') - $(grep ^SwapFree /proc/meminfo | awk '{print $2}')))K")"
- # RAM usage of the game server pid
- # MB
- if [ "${gameserverpid}" ]; then
- memused="$(ps --forest -o rss -g "${gameserverpid}" | awk '{s+=$1} END {print s}' | awk '{$1/=1024;printf "%.0f",$1}{print $2}')"
- # %
- pmemused="$(ps --forest -o %mem -g "${gameserverpid}" | awk '{s+=$1} END {print s}')"
- fi
-else
- # Older distros will need to use free.
- # Older versions of free do not support -h option.
- if [ "$(
- free -h > /dev/null 2>&1
- echo $?
- )" -ne "0" ]; then
- humanreadable="-m"
- else
- humanreadable="-h"
- fi
- physmemtotalmb="$(free -m | awk '/Mem:/ {print $2}')"
- physmemtotal="$(free ${humanreadable} | awk '/Mem:/ {print $2}')"
- physmemfree="$(free ${humanreadable} | awk '/Mem:/ {print $4}')"
- physmemused="$(free ${humanreadable} | awk '/Mem:/ {print $3}')"
-
- oldfree="$(free ${humanreadable} | awk '/cache:/')"
- if [ "${oldfree}" ]; then
- physmemavailable="n/a"
- physmemcached="n/a"
- else
- physmemavailable="$(free ${humanreadable} | awk '/Mem:/ {print $7}')"
- physmemcached="$(free ${humanreadable} | awk '/Mem:/ {print $6}')"
- fi
-
- swaptotal="$(free ${humanreadable} | awk '/Swap:/ {print $2}')"
- swapused="$(free ${humanreadable} | awk '/Swap:/ {print $3}')"
- swapfree="$(free ${humanreadable} | awk '/Swap:/ {print $4}')"
-fi
-
-### Disk information
-
-## Available disk space on the partition.
-filesystem="$(LC_ALL=C df -hP "${rootdir}" | tail -n 1 | awk '{print $1}')"
-totalspace="$(LC_ALL=C df -hP "${rootdir}" | tail -n 1 | awk '{print $2}')"
-usedspace="$(LC_ALL=C df -hP "${rootdir}" | tail -n 1 | awk '{print $3}')"
-availspace="$(LC_ALL=C df -hP "${rootdir}" | tail -n 1 | awk '{print $4}')"
-
-## LinuxGSM used space total.
-rootdirdu="$(du -sh "${rootdir}" 2> /dev/null | awk '{print $1}')"
-if [ -z "${rootdirdu}" ]; then
- rootdirdu="0M"
-fi
-
-## LinuxGSM used space in serverfiles dir.
-serverfilesdu="$(du -sh "${serverfiles}" 2> /dev/null | awk '{print $1}')"
-if [ -z "${serverfilesdu}" ]; then
- serverfilesdu="0M"
-fi
-
-## LinuxGSM used space total minus backup dir.
-rootdirduexbackup="$(du -sh --exclude="${backupdir}" "${serverfiles}" 2> /dev/null | awk '{print $1}')"
-if [ -z "${rootdirduexbackup}" ]; then
- rootdirduexbackup="0M"
-fi
-
-## Backup info
-if [ -d "${backupdir}" ]; then
- # Used space in backups dir.
- backupdirdu="$(du -sh "${backupdir}" | awk '{print $1}')"
- # If no backup dir, size is 0M.
- if [ -z "${backupdirdu}" ]; then
- backupdirdu="0M"
- fi
-
- # number of backups set to 0 by default.
- backupcount=0
-
- # If there are backups in backup dir.
- if [ "$(find "${backupdir}" -name "*.tar.gz" | wc -l)" -ne "0" ]; then
- # number of backups.
- backupcount="$(find "${backupdir}"/*.tar.gz | wc -l)"
- # most recent backup.
- lastbackup="$(ls -1t "${backupdir}"/*.tar.gz | head -1)"
- # date of most recent backup.
- lastbackupdate="$(date -r "${lastbackup}")"
- # no of days since last backup.
- lastbackupdaysago="$((($(date +'%s') - $(date -r "${lastbackup}" +'%s')) / 60 / 60 / 24))"
- # size of most recent backup.
- lastbackupsize="$(du -h "${lastbackup}" | awk '{print $1}')"
- fi
-fi
-
-# Network Interface name
-netint=$(${ipcommand} -o addr | grep "${ip}" | awk '{print $2}')
-netlink=$(${ethtoolcommand} "${netint}" 2> /dev/null | grep Speed | awk '{print $2}')
-
-# Sets the SteamCMD glibc requirement if the game server requirement is less or not required.
-if [ "${appid}" ]; then
- if [ "${glibc}" = "null" ] || [ -z "${glibc}" ] || [ "$(printf '%s\n'${glibc}'\n' "2.14" | sort -V | head -n 1)" != "2.14" ]; then
- glibc="2.14"
- fi
-fi
-
-# Gather Port Info using ss
-ssinfo="$(ss -tuplwn)"
diff --git a/lgsm/functions/info_game.sh b/lgsm/functions/info_game.sh
deleted file mode 100644
index b8f94c18a6..0000000000
--- a/lgsm/functions/info_game.sh
+++ /dev/null
@@ -1,2600 +0,0 @@
-#!/bin/bash
-# LinuxGSM info_game.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Gathers various game server information.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-## Examples of filtering to get info from config files.
-# sed 's/foo//g' - remove foo
-# tr -cd '[:digit:]' leave only digits
-# tr -d '=\"; ' remove selected characters =\";
-# grep -v "foo" filter out lines that contain foo
-# cut -f1 -d "/" remove everything after /
-
-fn_info_game_ac() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- adminpassword="${unavailable}"
- httpport="${zero}"
- port="${zero}"
- queryport="${zero}"
- servername="${unavailable}"
- else
- adminpassword=$(grep "ADMIN_PASSWORD" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/ADMIN_PASSWORD//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- httpport=$(grep "HTTP_PORT" "${servercfgfullpath}" | tr -cd '[:digit:]')
- port=$(grep "TCP_PORT" "${servercfgfullpath}" | tr -cd '[:digit:]')
- queryport="${httpport}"
- servername=$(grep "NAME" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/NAME//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' | head -n 1)
-
- # Not set
- adminpassword=${adminpassword:-"NOT SET"}
- httpport=${httpport:-"0"}
- port=${port:-"0"}
- queryport=${queryport:-"0"}
- servername=${servername:-"NOT SET"}
-
- fi
-}
-
-fn_info_game_ark() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- adminpassword="${unavailable}"
- servername="${unavailable}"
- serverpassword="${unavailable}"
- else
- adminpassword=$(sed -nr 's/^ServerAdminPassword=(.*)/\1/p' "${servercfgfullpath}")
- servername=$(sed -nr 's/^SessionName=(.*)/\1/p' "${servercfgfullpath}")
- serverpassword=$(sed -nr 's/^ServerPassword=(.*)/\1/p' "${servercfgfullpath}")
-
- # Not set
- adminpassword=${adminpassword:-"NOT SET"}
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- fi
-
- # Parameters
- maxplayers=${maxplayers:-"0"}
- port=${port:-"0"}
- queryport=${queryport:-"0"}
- rawport=$((port + 1))
- rconport=${rconport:-"0"}
-}
-
-fn_info_game_arma3() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- adminpassword="${unavailable}"
- maxplayers="${zero}"
- servername="${unavailable}"
- serverpassword="${unavailable}"
- else
- adminpassword=$(sed -nr 's/^passwordAdmin\s*=\s*"(.*)"\s*;/\1/p' "${servercfgfullpath}")
- maxplayers=$(sed -nr 's/^maxPlayers\s*=\s*([0-9]+)\s*;/\1/p' "${servercfgfullpath}")
- servername=$(sed -nr 's/^hostname\s*=\s*"(.*)"\s*;/\1/p' "${servercfgfullpath}")
- serverpassword=$(sed -nr 's/^password\s*=\s*"(.*)"\s*;/\1/p' "${servercfgfullpath}")
-
- # Not set
- adminpassword=${adminpassword:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- fi
-
- # Parameters
- battleeyeport=$((port + 4))
- port=${port:-"2302"}
- queryport=$((port + 1))
- steammasterport=$((port + 2))
- voiceport=${port:-"2302"}
- voiceunusedport=$((port + 3))
-}
-
-fn_info_game_armar() {
- if [ ! -f "${servercfgfullpath}" ]; then
- adminpassword="${unavailable}"
- maxplayers="${zero}"
- port="${zero}"
- queryport="${zero}"
- servername="${unavailable}"
- serverpassword="${unavailable}"
- else
- adminpassword=$(jq -r '.game.passwordAdmin' "${servercfgfullpath}")
- battleeyeport=1376
- configip=$(jq -r '.bindAddress' "${servercfgfullpath}")
- maxplayers=$(jq -r '.game.maxPlayers' "${servercfgfullpath}")
- port=$(jq -r '.bindPort' "${servercfgfullpath}")
- queryport=$(jq -r '.a2s.port' "${servercfgfullpath}")
- servername=$(jq -r '.game.name' "${servercfgfullpath}")
- serverpassword=$(jq -r '.game.password' "${servercfgfullpath}")
-
- # Not set
- adminpassword=${adminpassword:-"NOT SET"}
- configip=${configip:-"0.0.0.0"}
- maxplayers=${maxplayers:-"0"}
- port=${port:-"0"}
- queryport=${queryport:-"0"}
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- fi
-}
-
-fn_info_game_av() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- maxplayers="${unavailable}"
- servername="${unavailable}"
- serverpassword="${unavailable}"
- port=${zero}
- queryport=${zero}
- steamqueryport=${zero}
- steammasterport=${zero}
- rconport=${zero}
- rconenabled="${unavailable}"
- rconpassword="${unavailable}"
- else
- maxplayers=$(grep "maxPlayers=" "${servercfgfullpath}" | sed 's/maxPlayers=//')
- servername=$(grep "name=" "${servercfgfullpath}" | sed 's/name=//')
- serverpassword=$(grep "password=" "${servercfgfullpath}" | sed 's/password=//')
- port=$(grep "port=" "${servercfgfullpath}" | sed 's/port=//')
- queryport=$((port + 3))
- steamqueryport=$((port + 20))
- steammasterport=$((port + 21))
- rconport=$(grep "rconPort=" "${servercfgfullpath}" | sed 's/rconPort=//')
-
- rconpassword=$(grep "rconPassword=" "${servercfgfullpath}" | sed 's/rconPassword=//')
- if [ -n "${rconpassword}" ]; then
- rconenabled="true"
- fi
-
- # Not set
- maxplayers=${maxplayers:-"0"}
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- port=${port:-"0"}
- queryport=${queryport:-"0"}
- steamqueryport=${steamqueryport:-"0"}
- steammasterport=${steammasterport:-"0"}
- rconport=${rconport:-"0"}
- rconenabled=${rconenabled:-"NOT SET"}
- rconpassword=${rconpassword:-"NOT SET"}
- fi
-}
-
-fn_info_game_bf1942() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- serverpassword="${unavailable}"
- maxplayers="${zero}"
- port="${zero}"
- queryport="${zero}"
- else
- servername=$(grep -E "^game.serverName " "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/game.serverName //g' | tr -d '=\";,:' | xargs)
- serverpassword=$(grep "game.serverPassword" "${servercfgfullpath}" | sed -e 's/^ *//g' -e '/^--/d' -e 's/game.serverPassword//g' | tr -d '=\";,:' | xargs)
- maxplayers=$(grep "game.serverMaxPlayers" "${servercfgfullpath}" | grep -v "\--" | tr -cd '[:digit:]')
- port=$(grep "game.serverPort" "${servercfgfullpath}" | grep -v "\--" | tr -cd '[:digit:]')
- queryport="22000"
- configip=$(grep "game.serverIP" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/game.serverIP//g' | tr -d '=\";,:' | xargs)
-
- # Not set
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- port=${port:-"0"}
- queryport=${queryport:-"0"}
- configip=${configip:-"0.0.0.0"}
- fi
-}
-
-fn_info_game_bfv() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- serverpassword="${unavailable}"
- maxplayers="${zero}"
- port="${zero}"
- queryport="${zero}"
- else
- servername=$(grep "game.serverName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/game.serverName//g' | tr -d '=\";,:' | xargs)
- serverpassword=$(grep "game.serverPassword" "${servercfgfullpath}" | sed -e 's/^ *//g' -e '/^--/d' -e 's/game.serverPassword//g' | tr -d '=\";,:' | xargs)
- maxplayers=$(grep "game.serverMaxPlayers" "${servercfgfullpath}" | grep -v "\--" | tr -cd '[:digit:]')
- port=$(grep "game.serverPort" "${servercfgfullpath}" | grep -v "\--" | tr -cd '[:digit:]')
- queryport="23000"
- configip=$(grep "game.serverIP" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/game.serverIP//g' | tr -d '=\";,:' | xargs)
-
- # Not set
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- port=${port:-"0"}
- queryport=${queryport:-"0"}
- configip=${configip:-"0.0.0.0"}
- fi
-}
-
-fn_info_game_bo() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- serverpassword="${unavailable}"
- port="${zero}"
- queryport="${zero}"
- maxplayers="${unavailable}"
- else
- servername=$(grep "ServerName=" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/ServerName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- serverpassword=$(grep "Password=" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/Password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- port=$(grep "ServerPort=" "${servercfgfullpath}" | tr -cd '[:digit:]')
- queryport=$((port + 1))
- maxplayers=$(grep "MaxPlayers=" "${servercfgfullpath}" | tr -cd '[:digit:]')
-
- # Not set
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- port=${port:-"0"}
- queryport=${queryport:-"0"}
- maxplayers=${maxplayers:-"0"}
- fi
-}
-
-fn_info_game_bt() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- serverpassword="${unavailable}"
- port="${zero}"
- queryport="${zero}"
- maxplayers="${unavailable}"
- else
- servername=$(grep -Po 'name="\K.*(?=")' "${servercfgfullpath}") # Assuming GNU grep is used
- serverpassword=$(grep -Po 'password="\K.*(?=")' "${servercfgfullpath}") # Assuming GNU grep is used
- port=$(grep " port=" "${servercfgfullpath}" | tr -cd '[:digit:]')
- queryport=$(grep "queryport=" "${servercfgfullpath}" | tr -cd '[:digit:]')
- maxplayers=$(grep "maxplayers=" "${servercfgfullpath}" | tr -cd '[:digit:]')
-
- # Not set
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- port=${port:-"0"}
- queryport=${queryport:-"0"}
- maxplayers=${maxplayers:-"0"}
- fi
-}
-
-fn_info_game_btl() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- serverpassword="${unavailable}"
- gamemode="${unavailable}"
- else
- servername=$(grep -m2 "ServerName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/ServerName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- serverpassword=$(grep "Password" "${servercfgfullpath}" | grep -v "RCONPassword" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/Password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- gamemode=$(grep -m2 "PlayMode" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/PlayMode//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
-
- # Not set
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- gamemode=${gamemode:-"NOT SET"}
- fi
-
- # Parameters
- port=${port:-"0"}
- queryport=${queryport:-"0"}
- rconport=$((port + 2))
-}
-
-fn_info_game_cd() {
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- port="${zero}"
- rconenabled="false"
- rconport="${zero}"
- rconpassword="${unavailable}"
- steamport="${zero}"
- maxplayers="${zero}"
- else
- servername=$(jq -r '.game_title' "${servercfgfullpath}")
- port=$(jq -r '.game_port' "${servercfgfullpath}")
- steamport=$(jq -r '.steam_port_messages' "${servercfgfullpath}")
- rconenabled=$(jq -r '.rcon' "${servercfgfullpath}")
- rconport=$(jq -r '.rcon_port' "${servercfgfullpath}")
- rconpassword=$(jq -r '.rcon_password' "${servercfgfullpath}")
- maxplayers=$(jq -r '.player_count' "${servercfgfullpath}")
- fi
-}
-
-fn_info_game_ck() {
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- maxplayers="${zero}"
- else
- servername=$(jq -r '.worldName' "${servercfgfullpath}")
- maxplayers=$(jq -r '.maxNumberPlayers' "${servercfgfullpath}")
- fi
- queryport=$((port + 1))
-}
-
-fn_info_game_cmw() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- adminpassword="${unavailable}"
- rconport=${zero}
- servername="${unavailable}"
- serverpassword="${unavailable}"
-
- else
- adminpassword=$(grep -E "^adminpassword=" "${servercfgfullpath}" | tr -cd '[:digit:]')
- rconport=$(grep -E "^RConPort=" "${servercfgdir}/DefaultGame.ini" | tr -cd '[:digit:]')
- servername=$(grep -E "^ServerName" "${servercfgfullpath}" | sed 's/^ServerName=//')
- serverpassword=$(grep -E "^GamePassword" "${servercfgfullpath}" | sed 's/^ServerName=//')
-
- # Not set
- adminpassword=${adminpassword:-"NOT SET"}
- rconport=${rconport:-"0"}
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- fi
-
- # Parameters
- defaultmap=${defaultmap:-"NOT SET"}
- port=${port:-"0"}
- queryport=${queryport:-"0"}
-}
-
-fn_info_game_cod() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- rconpassword="${unavailable}"
- else
- servername=$(grep "sv_hostname " "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set sv_hostname //g' | tr -d '=\";,:' | xargs)
- rconpassword=$(grep "rconpassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set rconpassword //g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
-
- # Not set
- servername=${servername:-"NOT SET"}
- rconpassword=${rconpassword=:-"NOT SET"}
- fi
-
- # Parameters
- defaultmap=${defaultmap:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- port=${port:-"0"}
-}
-
-fn_info_game_coduo() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- rconpassword="${unavailable}"
- else
- servername=$(grep "sv_hostname " "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set sv_hostname //g' | tr -d '=\";,:' | xargs)
- rconpassword=$(grep "rconpassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set rconpassword //g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
-
- # Not set
- servername=${servername:-"NOT SET"}
- rconpassword=${rconpassword=:-"NOT SET"}
- fi
-
- # Parameters
- defaultmap=${defaultmap:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- port=${port:-"0"}
- queryport=${port:-"28960"}
-}
-
-fn_info_game_cod2() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- rconpassword="${unavailable}"
- else
- servername=$(grep "sv_hostname " "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set sv_hostname //g' | tr -d '=\";,:' | xargs)
- rconpassword=$(grep "rconpassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set rconpassword //g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
-
- # Not set
- servername=${servername:-"NOT SET"}
- rconpassword=${rconpassword=:-"NOT SET"}
- fi
-
- # Parameters
- defaultmap=${defaultmap:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- port=${port:-"0"}
- queryport=${port:-"28960"}
-}
-
-fn_info_game_cod4() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- rconpassword="${unavailable}"
- else
- servername=$(sed -nr 's/^set\s*sv_hostname\s*"(.*)".*/\1/p' "${servercfgfullpath}")
- rconpassword=$(sed -nr 's/^set\s*rcon_password\s*"(.*)"\s*\/.*/\1/p' "${servercfgfullpath}")
- queryport=${port:-"28960"}
-
- # Not set
- servername=${servername:-"NOT SET"}
- rconpassword=${rconpassword=:-"NOT SET"}
- queryport=${queryport:-"28960"}
- fi
-
- # Parameters
- defaultmap=${defaultmap:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- port=${port:-"0"}
- queryport=${port:-"28960"}
-}
-
-fn_info_game_codwaw() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- rconpassword="${unavailable}"
- else
- servername=$(grep "sv_hostname " "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set sv_hostname //g' | tr -d '=\";,:' | xargs)
- rconpassword=$(grep "rconpassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set rconpassword //g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
-
- # Not set
- servername=${servername:-"NOT SET"}
- rconpassword=${rconpassword=:-"NOT SET"}
- fi
-
- # Parameters
- defaultmap=${defaultmap:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- port=${port:-"0"}
- queryport=${port:-"28960"}
-}
-
-fn_info_game_col() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- serverpassword="${unavailable}"
- maxplayers="${unavailable}"
- port="${zero}"
- queryport="${zero}"
- steamport="${zero}"
- rconpassword="${unavailable}"
- else
- servername=$(jq -r '.ServerSettings.ServerName' "${servercfgfullpath}")
- serverpassword=$(jq -r '.ServerSettings.ServerPassword' "${servercfgfullpath}")
- maxplayers=$(jq -r '.ServerSettings.MaxPlayerCount' "${servercfgfullpath}")
- port=$(jq -r '.ServerSettings.ServerGamePort' "${servercfgfullpath}")
- queryport=${port:-"0"}
- steamport=$(jq -r '.ServerSettings.ServerSteamPort' "${servercfgfullpath}")
- rconpassword=$(jq -r '.ServerSettings.RCONPassword' "${servercfgfullpath}")
- configip=$(jq -r '.ServerSettings.ServerIP' "${servercfgfullpath}")
-
- # Not set
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- port=${port:-"27004"}
- queryport=${queryport:-"0"}
- steamport=${steamport:-"27005"}
- rconpassword=${rconpassword:-"NOT SET"}
- configip=${configip:-"0.0.0.0"}
- fi
-}
-
-fn_info_game_dodr() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- maxplayers="${zero}"
- else
- maxplayers=$(sed -nr 's/^iServerMaxPlayers=(.*)$/\1/p' "${servercfgfullpath}")
-
- # Not set
- maxplayers=${maxplayers:-"0"}
- fi
-
- # Parameters
- servername=${servername:-"NOT SET"}
- port=${port:-"7777"}
- queryport=${queryport:-"27015"}
-}
-
-fn_info_game_dayz() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- adminpassword="${unavailable}"
- serverpassword="${unavailable}"
- maxplayers="${zero}"
- else
- servername=$(sed -nr 's/^hostname\s*=\s*"(.*)"\s*;/\1/p' "${servercfgfullpath}")
- adminpassword=$(sed -nr 's/^passwordAdmin\s*=\s*"(.*)"\s*;/\1/p' "${servercfgfullpath}")
- serverpassword=$(sed -nr 's/^password\s*=\s*"(.*)"\s*;/\1/p' "${servercfgfullpath}")
- maxplayers=$(sed -nr 's/^maxPlayers\s*=\s*([0-9]+)\s*;/\1/p' "${servercfgfullpath}")
- queryport=$(sed -nr 's/^steamQueryPort\s*=\s*([0-9]+)\s*;/\1/p' "${servercfgfullpath}")
-
- # Not Set
- servername=${servername:-"NOT SET"}
- adminpassword=${adminpassword:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- queryport=${queryport:-"27016"}
- fi
-
- # Parameters
- port=${port:-"2302"}
- steammasterport=$((port + 2))
- battleeyeport=$((port + 4))
-}
-
-fn_info_game_dst() {
- # Config
- if [ ! -f "${clustercfgfullpath}" ]; then
- servername="${unavailable}"
- serverpassword="${unavailable}"
- maxplayers="${zero}"
- gamemode="${unavailable}"
- tickrate="${zero}"
- masterport="${zero}"
- else
- servername=$(grep "cluster_name" "${clustercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/cluster_name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- serverpassword=$(grep "cluster_password" "${clustercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/cluster_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- maxplayers=$(grep "max_players" "${clustercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- gamemode=$(grep "game_mode" "${clustercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/game_mode//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- tickrate=$(grep "tick_rate" "${clustercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- masterport=$(grep "master_port" "${clustercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- configip=$(grep "bind_ip" "${clustercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/bind_ip//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
-
- # Not set
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- gamemode=${gamemode:-"NOT SET"}
- tickrate=${tickrate:-"0"}
- masterport=${masterport:-"0"}
- configip=${configip:-"0.0.0.0"}
- fi
-
- if [ ! -f "${servercfgfullpath}" ]; then
- port="${zero}"
- steamauthport="${zero}"
- steammasterport="${zero}"
- else
- port=$(grep "server_port" "${servercfgfullpath}" | grep "^server_port" | grep -v "#" | tr -cd '[:digit:]')
- steamauthport=$(grep "authentication_port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- steammasterport=$(grep "master_server_port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
-
- # Not set
- port=${port:-"0"}
- steamauthport=${steamauthport:-"0"}
- steammasterport=${steammasterport:-"0"}
- fi
-
- # Parameters
- sharding=${sharding:-"NOT SET"}
- master=${master:-"NOT SET"}
- shard=${shard:-"NOT SET"}
- cluster=${cluster:-"NOT SET"}
- cave=${cave:-"NOT SET"}
-}
-
-fn_info_game_eco() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- serverpassword="${unavailable}"
- maxplayers="${zero}"
- tickrate="${zero}"
- port="${zero}"
- webadminport="${zero}"
- else
- configip=$(jq -r '.IPAddress' "${servercfgfullpath}")
- servername=$(jq -r '.Description' "${servercfgfullpath}")
- serverpassword=$(jq -r '.Password' "${servercfgfullpath}")
- maxplayers=$(jq -r '.MaxConnections' "${servercfgfullpath}")
- tickrate=$(jq -r '.Rate' "${servercfgfullpath}")
- port=$(jq -r '.GameServerPort' "${servercfgfullpath}")
- webadminport=$(jq -r '.WebServerPort' "${servercfgfullpath}")
-
- # Not set
- configip=${configip:-"0.0.0.0"}
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- maxplayers=${maxplayers=:-"0"}
- tickrate=${tickrate=:-"0"}
- port=${port=:-"0"}
- webadminport=${webadminport=:-"0"}
- fi
-}
-
-fn_info_game_etl() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- rconpassword="${unavailable}"
- servername="${unavailable}"
- serverpassword="${unavailable}"
- maxplayers="${zero}"
- port="${zero}"
- queryport="${zero}"
- else
- port=$(grep "set net_port" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
- queryport="${port}"
- rconpassword=$(grep "set rconpassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set rconpassword //g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//g' -e '/^\//d' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- servername=$(grep "set sv_hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set sv_hostname //g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- serverpassword=$(grep "set g_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set g_password //g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- maxplayers=$(grep "set sv_maxclients" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
- configip=$(grep "set net_ip" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set net_ip//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
-
- # Not set
- rconpassword=${rconpassword:-"NOT SET"}
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- port=${port:-"27960"}
- queryport=${queryport:-"27960"}
- configip=${configip:-"0.0.0.0"}
- fi
-}
-
-fn_info_game_fctr() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="Factorio Server"
- serverpassword="${unavailable}"
- maxplayers="${zero}"
- authtoken="${unavailable}"
- savegameinterval="${unavailable}"
- versioncount="${unavailable}"
- else
- servername=$(jq -r '.name' "${servercfgfullpath}")
- serverpassword=$(jq -r '.game_password' "${servercfgfullpath}")
- maxplayers=$(jq -r '.max_players' "${servercfgfullpath}")
- authtoken=$(jq -r '.token' "${servercfgfullpath}")
- savegameinterval=$(jq -r '.autosave_interval' "${servercfgfullpath}")
- versioncount=$(jq -r '.autosave_slots' "${servercfgfullpath}")
-
- # Not set
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- authtoken=${authtoken:-"NOT SET"}
- savegameinterval=${savegameinterval:-"0"}
- versioncount=${versioncount:-"0"}
- fi
-
- # Parameters
- port=${port:-"0"}
- rconport=${rconport:-"0"}
- rconpassword=${rconpassword:-"NOT SET"}
-
- # get server version if installed
- local factoriobin="${executabledir}${executable:1}"
- if [ -f "${factoriobin}" ]; then
- serverversion=$(${factoriobin} --version | grep "Version:" | awk '{print $2}')
- fi
-}
-
-fn_info_game_jc2() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- serverdescription="${unavailable}"
- serverpassword="${unavailable}"
- maxplayers="${zero}"
- port="${zero}"
- queryport="${zero}"
- else
- servername=$(grep "Name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/Name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- serverdescription=$(grep "Description" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/Description//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- serverpassword=$(grep "Password" "${servercfgfullpath}" | sed -e 's/^ *//g' -e '/^--/d' -e 's/Password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- maxplayers=$(grep "MaxPlayers" "${servercfgfullpath}" | grep -v "\--" | tr -cd '[:digit:]')
- port=$(grep "BindPort" "${servercfgfullpath}" | grep -v "\--" | tr -cd '[:digit:]')
- queryport="${port}"
- configip=$(grep "BindIP" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/BindIP//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
-
- # Not set
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- serverdescription=${serverdescription:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- port=${port:-"0"}
- queryport=${queryport:-"0"}
- configip=${configip:-"0.0.0.0"}
- fi
-}
-
-fn_info_game_hw() {
- # Parameters
- servername=${servername:-"NOT SET"}
- port=${port:-"0"}
- queryport=${queryport:-"0"}
- maxplayers=${maxplayers:-"0"}
- defaultmap=${defaultmap:-"NOT SET"}
- creativemode=${creativemode:-"NOT SET"}
-}
-
-fn_info_game_inss() {
- # Parameters
- port=${port:-"0"}
- queryport=${queryport:-"0"}
- rconport=${rconport:-"0"}
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- defaultmap=${defaultmap:-"NOT SET"}
- defaultscenario=${defaultscenario:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
-}
-
-fn_info_game_jc3() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- serverdescription="${unavailable}"
- serverpassword="${unavailable}"
- maxplayers="${zero}"
- port="${zero}"
- queryPort="${zero}"
- steamport="${zero}"
- httpport="${zero}"
- tickrate="${zero}"
- else
- servername=$(grep "name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- serverdescription=$(grep "description" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/description//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- serverpassword=$(grep "password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- maxplayers=$(grep "\"maxPlayers\"" "${servercfgfullpath}" | tr -cd '[:digit:]')
- port=$(grep "\"port\"" "${servercfgfullpath}" | tr -cd '[:digit:]')
- queryport=$(grep "\"queryPort\"" "${servercfgfullpath}" | tr -cd '[:digit:]')
- steamport=$(grep "\"steamPort\"" "${servercfgfullpath}" | tr -cd '[:digit:]')
- httpport=$(grep "\"httpPort\"" "${servercfgfullpath}" | tr -cd '[:digit:]')
- tickrate=$(grep "\"maxTickRate\"" "${servercfgfullpath}" | tr -cd '[:digit:]')
- configip=$(grep "host" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/host//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
-
- # Not set
- servername=${servername:-"NOT SET"}
- serverdescription=${serverdescription:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- maxplayers=${maxplayers=:-"0"}
- port=${port=:-"0"}
- queryport=${queryport=:-"0"}
- steamport=${steamport=:-"0"}
- httpport=${httpport=:-"0"}
- tickrate=${tickrate=:-"0"}
- configip=${configip:-"0.0.0.0"}
- fi
-}
-
-fn_info_game_jk2() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- rconpassword="${unavailable}"
- servername="${unavailable}"
- serverpassword="${unavailable}"
- maxplayers="${zero}"
- serverversion="${unavailable}"
- else
- rconpassword=$(grep "seta rconpassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/seta rconpassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- servername=$(grep "seta sv_hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/seta sv_hostname//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- serverpassword=$(grep "seta g_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/seta g_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- maxplayers=$(grep "seta sv_maxclients" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- serverversion=$(grep "seta mv_serverversion" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/seta mv_serverversion//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
-
- # Not set
- rconpassword=${rconpassword:-"NOT SET"}
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- serverversion=${serverversion:-"NOT SET"}
- fi
-
- # Parameters
- port=${port:-"0"}
- queryport=${port}
- defaultmap=${defaultmap:-"NOT SET"}
-}
-
-fn_info_game_kf() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- serverpassword="${unavailable}"
- adminpassword="${unavailable}"
- port="${zero}"
- queryport="${zero}"
- queryportgs="${zero}"
- steamport="${zero}"
- steammasterport="${zero}"
- lanport="${zero}"
- httpport="${zero}"
- webadminenabled="${unavailable}"
- webadminuser="${unavailable}"
- webadminpass="${unavailable}"
- else
- servername=$(sed -nr 's/^ServerName=(.*)$/\1/p' "${servercfgfullpath}" | tr -d '=\";,:' | sed 's/\r$//')
- serverpassword=$(sed -nr 's/^GamePassword=(.*)$/\1/p' "${servercfgfullpath}" | tr -d '=\";,:' | sed 's/\r$//')
- adminpassword=$(sed -nr 's/^AdminPassword=(.*)$/\1/p' "${servercfgfullpath}" | tr -d '=\";,:' | sed 's/\r$//')
- port=$(sed -nr 's/^Port=(.*)$/\1/p' "${servercfgfullpath}" | tr -cd '[:digit:]')
- queryport=$((port + 1))
- queryportgs=$(sed -nr 's/^OldQueryPortNumber=(.*)$/\1/p' "${servercfgfullpath}" | tr -cd '[:digit:]')
- steamport="20560"
- steammasterport="28852"
- lanport=$(grep "LANServerPort=" "${servercfgfullpath}" | tr -cd '[:digit:]')
- httpport=$(sed -nr 's/^ListenPort=(.*)$/\1/p' "${servercfgfullpath}" | tr -cd '[:digit:]')
- webadminenabled=$(sed -nr 's/^bEnabled=(.*)$/\1/p' "${servercfgfullpath}" | tr -d '=\";,:' | sed 's/\r$//')
- webadminuser=$(sed -nr 's/^AdminName=(.*)$/\1/p' "${servercfgfullpath}" | tr -d '=\";,:' | sed 's/\r$//')
- webadminpass="${adminpassword}"
-
- # Not set
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- adminpassword=${adminpassword:-"NOT SET"}
- port=${port:-"0"}
- queryport=${queryport:-"0"}
- queryportgs=${queryportgs:-"0"}
- steamport=${steamport:-"0"}
- steammasterport=${steammasterport:-"0"}
- lanport=${lanport:-"0"}
- httpport=${httpport:-"0"}
- webadminenabled=${webadminenabled:-"NOT SET"}
- webadminuser=${webadminuser:-"NOT SET"}
- webadminpass=${webadminpass:-"NOT SET"}
- fi
-
- # Parameters
- defaultmap=${defaultmap:-"NOT SET"}
-}
-
-fn_info_game_kf2() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- serverpassword="${unavailable}"
- adminpassword="${unavailable}"
- port=${zero}
- queryport=${zero}
- webadminenabled="${unavailable}"
- httpport="${zero}"
- webadminuser="${unavailable}"
- webadminpass="${unavailable}"
- else
- servername=$(grep "ServerName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/ServerName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- serverpassword=$(grep "GamePassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/GamePassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- adminpassword=$(grep "AdminPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- port=$(grep "Port" "${servercfgdir}/LinuxServer-KFEngine.ini" | sed -e 's/^[ \t]*//g' | grep "^Port" | grep -v "#" | tr -cd '[:digit:]')
- webadminenabled=$(grep "bEnabled" "${servercfgdir}/KFWeb.ini" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/bEnabled//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- httpport=$(grep "ListenPort" "${servercfgdir}/KFWeb.ini" | grep -v "#" | tr -cd '[:digit:]')
- webadminuser="Admin"
- webadminpass=$(grep "AdminPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
-
- # Not set
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- adminpassword=${adminpassword:-"NOT SET"}
- port=${port:-"0"}
- webadminenabled=${webadminenabled:-"NOT SET"}
- httpport=${webadminport:-"0"}
- webadminuser=${webadminuser:-"NOT SET"}
- webadminpass=${webadminpass:-"NOT SET"}
- fi
-
- # Parameters
- queryport=${queryport:-"0"}
- defaultmap=${defaultmap:-"NOT SET"}
-}
-
-fn_info_game_lo() {
- # Parameters
- servername=${servername:-"NOT SET"}
- port=${port:-"0"}
- queryport=${queryport:-"0"}
- maxplayers=${slots:-"0"}
-}
-
-fn_info_game_mc() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- rconpassword="${unavailable}"
- rconport="${zero}"
- maxplayers="${zero}"
- port="${zero}"
- queryport="${zero}"
- queryenabled="${unavailable}"
- gamemode="${unavailable}"
- gameworld="${unavailable}"
- else
- servername=$(grep "motd" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/motd//g' | tr -d '=\";,:' | sed 's/\\u00A70//g;s/\\u00A71//g;s/\\u00A72//g;s/\\u00A73//g;s/\\u00A74//g;s/\\u00A75//g;s/\\u00A76//g;s/\\u00A77//g;s/\\u00A78//g;s/\\u00A79//g;s/\\u00A7a//g;s/\\u00A7b//g;s/\\u00A7c//g;s/\\u00A7d//g;s/\\u00A7e//g;s/\\u00A7f//g;s/\\u00A7l//g;s/\\u00A7o//g;s/\\u00A7n//g;s/\\u00A7m//g;s/\\u00A7k//g' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- rconpassword=$(grep "rcon.password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/rcon.password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- rconport=$(grep "rcon.port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- maxplayers=$(grep "max-players" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- port=$(grep "server-port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- queryport=$(grep "query.port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- if [ -z "${queryport}" ]; then
- queryport=${port}
- fi
- queryenabled=$(grep "enable-query" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/enable-query//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- gamemode=$(grep "gamemode" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- gameworld=$(grep "level-name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/level-name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- configip=$(grep "server-ip" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/server-ip//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
-
- # Not set
- servername=${servername:-"NOT SET"}
- rconpassword=${rconpassword:-"NOT SET"}
- rconport=${rconport:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- port=${port:-"NOT SET"}
- queryport=${queryport:-"NOT SET"}
- queryenabled="${queryenabled:-"NOT SET"}"
- gamemode=${gamemode:-"NOT SET"}
- gameworld=${gameworld:-"NOT SET"}
- configip=${configip:-"0.0.0.0"}
- fi
-}
-
-fn_info_game_mcb() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- maxplayers="${zero}"
- port="${zero}"
- portipv6="${zero}"
- queryport="${zero}"
- gamemode="${unavailable}"
- gameworld="${unavailable}"
- else
- servername=$(grep "server-name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/server-name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- maxplayers=$(grep "max-players" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- port=$(grep "server-port\b" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- portipv6=$(grep "server-portv6\b" "${servercfgfullpath}" | sed 's/v6//g' | grep -v "#" | tr -cd '[:digit:]')
- queryport=${port}
- gamemode=$(grep "gamemode" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/gamemode//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- gameworld=$(grep "level-name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/level-name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
-
- # Not set
- servername=${servername:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- port=${port:-"NOT SET"}
- portipv6=${portipv6:-"NOT SET"}
- queryport=${queryport:-"NOT SET"}
- gamemode=${gamemode:-"NOT SET"}
- gameworld=${gameworld:-"NOT SET"}
- fi
-}
-
-fn_info_game_mh() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- serverpassword="${unavailable}"
- rconpassword="${unavailable}"
- maxplayers="${unavailable}"
- else
- servername=$(grep "ServerName" "${servercfgfullpath}" | awk -F '=' '{print $2}')
- serverpassword=$(grep "ServerPassword" "${servercfgfullpath}" | awk -F '=' '{print $2}')
- rconpassword=$(grep "AdminPassword" "${servercfgfullpath}" | awk -F '=' '{print $2}')
- maxplayers=$(grep "MaxSlots" "${servercfgfullpath}" | awk -F '=' '{print $2}')
-
- # Not set
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- rconpassword=${rconpassword:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- fi
-
- # Parameters
- port=${port:-"0"}
- queryport=${queryport:-"0"}
- beaconport=${beaconport:-"0"}
-}
-
-fn_info_game_mohaa() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- rconpassword="${unavailable}"
- servername="${unavailable}"
- serverpassword="${unavailable}"
- maxplayers="${zero}"
- else
- rconpassword=$(grep "rconpassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/seta rconpassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- servername=$(grep "sv_hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/seta sv_hostname//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- serverpassword=$(grep "g_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/seta g_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- maxplayers=$(grep "sv_maxclients" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
-
- # Not set
- rconpassword=${rconpassword:-"NOT SET"}
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- fi
-
- # Parameters
- port=${port:-"0"}
- queryport=${port:-"0"}
- defaultmap=${defaultmap:-"NOT SET"}
-}
-
-fn_info_game_mom() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- serverpassword="${unavailable}"
- maxplayers="${zero}"
- defaultmap="${unavailable}"
- else
- servername=$(grep "ServerName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/ServerName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- serverpassword=$(grep "ServerPassword" "${servercfgfullpath}" | sed -e 's/^ *//g' -e '/^--/d' -e 's/ServerPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- maxplayers=$(grep "MaxPlayers" "${servercfgfullpath}" | sed -e 's/^ *//g' -e '/^--/d' -e 's/MaxPlayers//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- defaultmap=$(grep "MapName" "${servercfgfullpath}" | sed -e 's/^ *//g' -e '/^--/d' -e 's/MapName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
-
- # Not set
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- defaultmap=${defaultmap:-"NOT SET"}
- fi
-
- # Parameters
- port=${port:-"7777"}
- beaconport=${queryport:-"15000"}
-}
-
-fn_info_game_mta() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- port=${zero}
- queryport=${zero}
- httpport=${zero}
- ase="${unavailable}"
- servername="${unavailable}"
- serverpassword="${unavailable}"
- maxplayers="${zero}"
- else
- port=$(grep -m 1 "serverport" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's///g' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' | cut -f1 -d "<" | tr -cd '[:digit:]')
- queryport=$((port + 123))
- httpport=$(grep -m 1 "httpport" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's///g' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' | cut -f1 -d "<" | tr -cd '[:digit:]')
- servername=$(grep -m 1 "servername" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's///g' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' | cut -f1 -d "<")
- serverpassword=$(grep -m 1 "password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's///g' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' | cut -f1 -d "<")
- maxplayers=$(grep -m 1 "maxplayers" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's///g' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' | cut -f1 -d "<" | tr -cd '[:digit:]')
- ase=$(grep -m 1 "ase" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's///g' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' | cut -f1 -d "<" | tr -cd '[:digit:]')
- if [ "${ase}" == "1" ]; then
- ase="Enabled"
- else
- ase="Disabled"
- fi
-
- # Not set
- port=${port:-"22003"}
- queryport=${queryport:-"2326"}
- httpport=${httpport:-"22005"}
- ase=${ase:-"Disabled"}
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- fi
-
-}
-
-fn_info_game_nec() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- maxplayers=${maxplayers:-"0"}
- port=${port:-"0"}
- servername="Necesse"
- serverpassword="${unavailable}"
- else
- maxplayers=$(grep "slots" "${servercfgfullpath}" | cut -f1 -d "/" | tr -cd '[:digit:]')
- port=$(grep "port" "${servercfgfullpath}" | cut -f1 -d "/" | tr -cd '[:digit:]')
- serverpassword=$(grep "password" "${servercfgfullpath}" | cut -f1 -d "/" | tr -cd '[:digit:]')
-
- # Not set
- maxplayers=${maxplayers:-"0"}
- port=${port:-"0"}
- servername="Necesse Port ${port}"
- serverpassword=${serverpassword:-"NOT SET"}
- fi
-}
-
-fn_info_game_onset() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- maxplayers="${zero}"
- port="${zero}"
- httpport="${zero}"
- queryport="${zero}"
- else
- servername=$(grep -v "servername_short" "${servercfgfullpath}" | grep "servername" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/servername//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- maxplayers=$(grep "maxplayers" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- port=$(grep "port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- httpport=$((port - 2))
- queryport=$((port - 1))
-
- # Not set
- servername=${servername:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- port=${port:-"NOT SET"}
- httpport=${httpport:-"NOT SET"}
- queryport=${queryport:-"NOT SET"}
- fi
-}
-
-fn_info_game_pc() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- serverpassword="${unavailable}"
- maxplayers="${zero}"
- port="${zero}"
- queryport="${zero}"
- steamport="${zero}"
- else
- servername=$(grep "name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- serverpassword=$(grep "password " "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- maxplayers=$(grep "MaxPlayers" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
- port=$(grep "hostPort" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
- queryport=$(grep "queryPort" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
- steamport=$(grep "steamPort" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
-
- # Not set
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- port=${port:-"NOT SET"}
- queryport=${queryport:-"NOT SET"}
- steamport=${steamport:-"NOT SET"}
- fi
-}
-
-fn_info_game_pc2() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- serverpassword="${unavailable}"
- maxplayers="${zero}"
- port="${zero}"
- queryport="${zero}"
- steamport="${zero}"
- else
- servername=$(grep "name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- serverpassword=$(grep "password " "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- maxplayers=$(grep "MaxPlayers" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
- port=$(grep "hostPort" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
- queryport=$(grep "queryPort" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
- steamport=$(grep "steamPort" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
-
- # Not set
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- port=${port:-"NOT SET"}
- queryport=${queryport:-"NOT SET"}
- steamport=${steamport:-"NOT SET"}
- fi
-}
-
-fn_info_game_pstbs() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- maxplayers="${unavailable}"
- reservedslots="${unavailable}"
- else
- servername=$(grep "ServerName=" "${servercfgfullpath}" | sed -e 's/^[ \t]//g' -e '/^#/d' -e 's/ServerName//g' | tr -d '=";,:' | sed -e 's/^[ \t]//' -e 's/[ \t]*$//')
- maxplayers=$(grep "MaxPlayers=" "${servercfgfullpath}" | tr -cd '[:digit:]')
- reservedslots=$(grep "NumReservedSlots=" "${servercfgfullpath}" | tr -cd '[:digit:]')
-
- # Not set
- servername=${servername:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- reservedslots=${reservedslots:-"0"}
- fi
-
- if [ ! -f "${servercfgdir}/Rcon.cfg" ]; then
- rconport=${unavailable}
- rconpassword=${unavailable}
- else
- rconport=$(grep "Port=" "${servercfgdir}/Rcon.cfg" | tr -cd '[:digit:]')
- rconpassword=$(grep "Password=" "${servercfgdir}/Rcon.cfg" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/Password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
-
- # Not set
- rconport=${rconport:-"0"}
- if [ -z "${rconpassword}" ] || [ ${#rconpassword} == 1 ]; then
- rconpassword="NOT SET"
- fi
- fi
-
- # Parameters
- port=${port:-"0"}
- if [ -z "${queryport}" ]; then
- queryport=${port:-"0"}
- fi
- rconport=${rconport:-"0"}
- randommap=${randommap:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- reservedslots=${reservedslots:-"0"}
-}
-
-fn_info_game_pvr() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- maxplayers="${unavailable}"
- else
- servername=$(grep "ServerName" "${servercfgfullpath}" | awk -F '=' '{print $2}')
- maxplayers=$(grep "MaxPlayers" "${servercfgfullpath}" | awk -F '=' '{print $2}')
-
- # Not set
- servername=${servername:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- fi
-
- # Parameters
- port=${port:-"0"}
- port401=$((port + 400))
- queryport=${port:-"0"}
-}
-
-fn_info_game_prism3d() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- maxplayers="${unavailable}"
- port="${zero}"
- queryport="${zero}"
- servername="${unavailable}"
- serverpassword="${unavailable}"
- else
- maxplayers=$(sed -nr 's/^\s*max_players\s*:\s*([0-9]+)/\1/p' "${servercfgfullpath}")
- port=$(sed -nr 's/^\s*connection_dedicated_port\s*:\s*([0-9]+)/\1/p' "${servercfgfullpath}")
- queryport=$(sed -nr 's/^\s*query_dedicated_port\s*:\s*([0-9]+)/\1/p' "${servercfgfullpath}")
- servername=$(sed -nr 's/^\s*lobby_name\s*:\s*"?([^"\r\n]+)"?/\1/p' "${servercfgfullpath}")
- serverpassword=$(sed -nr 's/^\s*password\s*:\s*"(.*)"/\1/p' "${servercfgfullpath}")
-
- # Not set
- maxplayers=${maxplayers:-"0"}
- port=${port:-"27015"}
- queryport=${queryport:-"27016"}
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- fi
-}
-
-fn_info_game_pz() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- serverpassword="${unavailable}"
- rconpassword="${unavailable}"
- maxplayers="${zero}"
- port="${zero}"
- queryport="${zero}"
- gameworld="${unavailable}"
- else
- servername=$(grep "PublicName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/PublicName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- serverpassword=$(grep "Password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' | grep "^Password" | sed -e '/^#/d' -e 's/Password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- rconpassword=$(grep "RCONPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/RCONPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- maxplayers=$(grep "MaxPlayers" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- port=$(grep "DefaultPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
- queryport=${port}
- gameworld=$(grep "Map" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' | grep "^Map" | sed -e '/^#/d' -e 's/Map//g' | tr -d '=\";' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
-
- # Not set
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- rconpassword=${rconpassword:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- port=${port:-"0"}
- queryport=${queryport:-"0"}
- gameworld=${gameworld:-"NOT SET"}
- fi
-
- # Parameters
- adminpassword=${adminpassword:-"NOT SET"}
-
-}
-
-fn_info_game_q2() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- rconpassword="${unavailable}"
- servername="${unavailable}"
- maxplayers="${zero}"
- else
- rconpassword=$(grep "rcon_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set rcon_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- servername=$(grep "hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set hostname//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- maxplayers=$(grep "maxclients" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
-
- # Not set
- rconpassword=${rconpassword:-"NOT SET"}
- servername=${servername:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- fi
-
- # Parameters
- port=${port:-"0"}
- queryport=${port}
- defaultmap=${defaultmap:-"NOT SET"}
-}
-
-fn_info_game_q3() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- rconpassword="${unavailable}"
- servername="${unavailable}"
- serverpassword="${unavailable}"
- maxplayers="${zero}"
- else
- rconpassword=$(grep "zmq_rcon_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set zmq_rcon_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- servername=$(grep "sv_hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set sv_hostname//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- serverpassword=$(grep "rconpassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set rconpassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- maxplayers=$(grep "sv_maxclients" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
-
- # Not set
- rconpassword=${rconpassword:-"NOT SET"}
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- fi
-
- # Parameters
- port=${port:-"0"}
- queryport=${port}
- defaultmap=${defaultmap:-"NOT SET"}
-}
-
-fn_info_game_ql() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- rconpassword="${unavailable}"
- servername="${unavailable}"
- serverpassword="${unavailable}"
- maxplayers="${zero}"
- port="${zero}"
- queryport="${zero}"
- rconport="${zero}"
- statsport="${zero}"
- else
- rconpassword=$(grep "zmq_rcon_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set zmq_rcon_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- servername=$(grep "sv_hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set sv_hostname//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- serverpassword=$(grep "g_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set g_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- maxplayers=$(grep "sv_maxClients" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
- port=$(grep "net_port" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
- queryport=${port}
- rconport=$(grep "zmq_rcon_port" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
- statsport=$(grep "zmq_stats_port" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
- configip=$(grep "set net_ip" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set net_ip//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
-
- # Not set
- rconpassword=${rconpassword:-"NOT SET"}
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- port=${port:-"0"}
- queryport=${queryport:-"0"}
- rconport=${rconport:-"0"}
- statsport=${statsport:-"0"}
- configip=${configip:-"0.0.0.0"}
- fi
-}
-
-fn_info_game_qw() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- rconpassword="${unavailable}"
- servername="${unavailable}"
- serverpassword="${unavailable}"
- maxplayers="${zero}"
- port="${zero}"
- else
- rconpassword=$(grep "rcon_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set rcon_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' | cut -f1 -d "/")
- servername=$(grep "hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set hostname//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' | cut -f1 -d "/")
- maxplayers=$(grep "maxclients" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
-
- # Not set
- rconpassword=${rconpassword:-"NOT SET"}
- servername=${servername:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- fi
-
- # Parameters
- port=${port:-"0"}
- queryport=${port}
-}
-
-fn_info_game_ro() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- serverpassword="${unavailable}"
- adminpassword="${unavailable}"
- port="${zero}"
- queryport="${zero}"
- steamport="${zero}"
- steammasterport="${zero}"
- lanport="${zero}"
- httpport="${zero}"
- webadminenabled="${unavailable}"
- webadminuser="${unavailable}"
- webadminpass="${unavailable}"
- else
- servername=$(sed -nr 's/^ServerName=(.*)$/\1/p' "${servercfgfullpath}" | tr -d '=\";,:' | sed 's/\r$//')
- serverpassword=$(sed -nr 's/^GamePassword=(.*)$/\1/p' "${servercfgfullpath}" | tr -d '=\";,:' | sed 's/\r$//')
- adminpassword=$(sed -nr 's/^AdminPassword=(.*)$/\1/p' "${servercfgfullpath}" | tr -d '=\";,:' | sed 's/\r$//')
- port=$(sed -nr 's/^Port=(.*)$/\1/p' "${servercfgfullpath}" | tr -cd '[:digit:]')
- queryport=$((port + 1))
- steamport="20610"
- steammasterport="28902"
- lanport=$(grep "LANServerPort=" "${servercfgfullpath}" | tr -cd '[:digit:]')
- httpport=$(sed -nr 's/^ListenPort=(.*)$/\1/p' "${servercfgfullpath}" | tr -cd '[:digit:]')
- webadminenabled=$(sed -nr 's/^bEnabled=(.*)$/\1/p' "${servercfgfullpath}" | tr -d '=\";,:' | sed 's/\r$//')
- webadminuser=$(sed -nr 's/^AdminName=(.*)$/\1/p' "${servercfgfullpath}" | tr -d '=\";,:' | sed 's/\r$//')
- webadminpass="${adminpassword}"
-
- # Not set
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- adminpassword=${adminpassword:-"NOT SET"}
- port=${port:-"0"}
- queryport=${queryport:-"0"}
- steamport=${steamport:-"0"}
- steammasterport=${steammasterport:-"0"}
- lanport=${lanport:-"0"}
- httpport=${httpport:-"0"}
- webadminenabled=${webadminenabled:-"NOT SET"}
- webadminuser=${webadminuser:-"NOT SET"}
- webadminpass=${webadminpass:-"NOT SET"}
- fi
-
- # Parameters
- defaultmap=${defaultmap:-"NOT SET"}
-}
-
-fn_info_game_rtcw() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- rconpassword="${unavailable}"
- servername="${unavailable}"
- serverpassword="${unavailable}"
- maxplayers="${zero}"
- else
- rconpassword=$(grep "rconpassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set rconpassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- servername=$(grep "sv_hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set sv_hostname//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- serverpassword=$(grep "g_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set g_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- maxplayers=$(grep "sv_maxclients" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
-
- # Not set
- rconpassword=${rconpassword:-"NOT SET"}
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- fi
-
- # Parameters
- port=${port:-"0"}
- queryport=${port:-"0"}
- defaultmap=${defaultmap:-"NOT SET"}
-}
-
-fn_info_game_rust() {
- # Parameters
- servername=${servername:-"NOT SET"}
- port=${port:-"0"}
- queryport=${queryport:-"0"}
- appport=${appport:-"0"}
- rconport=${rconport:-"0"}
- gamemode=${gamemode:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- rconpassword=${rconpassword:-"NOT SET"}
- rconweb=${rconweb:-"NOT SET"}
- tickrate=${tickrate:-"0"}
- saveinterval=${saveinterval:-"0"}
- serverlevel=${serverlevel:-"NOT SET"}
- customlevelurl=${customlevelurl:-"NOT SET"}
- worldsize=${worldsize:-"0"}
- if [ -n "${seed}" ]; then
- seed=${seed:-"0"}
- elif [ -f "${datadir}/${selfname}-seed.txt" ]; then
- seed=$(cat "${datadir}/${selfname}-seed.txt")
- else
- seed="0"
- fi
- salt=${salt:-"0"}
-}
-
-fn_info_game_rw() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- serverpassword="${unavailable}"
- rconpassword="${unavailable}"
- rconport="${zero}"
- maxplayers="${zero}"
- port="${zero}"
- port2="${zero}"
- port3="${zero}"
- port4="${zero}"
- queryport="${zero}"
- gamemode="${unavailable}"
- gameworld="${unavailable}"
- else
- servername=$(grep "server_name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/server_name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- serverpassword=$(grep "server_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/server_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- rconpassword=$(grep "rcon_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/rcon_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- rconport=$(grep "rcon_port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- maxplayers=$(grep "settings_max_players" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- port=$(grep "server_port" "${servercfgfullpath}" | grep -v "database_mysql_server_port" | grep -v "#" | tr -cd '[:digit:]')
- port2=$((port + 1))
- port3=$((port + 2))
- port4=$((port + 3))
- queryport="${port}"
- httpqueryport=$((port - 1))
- gamemode=$(grep "settings_default_gamemode=" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/settings_default_gamemode//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- gameworld=$(grep "server_world_name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/server_world_name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- configip=$(grep "server_ip" "${servercfgfullpath}" | grep -v "database_mysql_server_ip" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/server_ip//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
-
- # Not set
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- rconpassword=${rconpassword:-"NOT SET"}
- rconport=${rconport:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- port=${port:-"0"}
- port2=${port2:-"0"}
- port3=${port3:-"0"}
- port4=${port4:-"0"}
- queryport=${queryport:-"0"}
- httpqueryport=${httpport:-"0"}
- gamemode=${gamemode:-"NOT SET"}
- gameworld=${gameworld:-"NOT SET"}
- configip=${configip:-"0.0.0.0"}
- fi
-}
-
-fn_info_game_samp() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="unnamed server"
- rconpassword="${unavailable}"
- port="7777"
- rconport="${port}"
- maxplayers="50"
- else
- servername=$(grep "hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/hostname//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- rconpassword=$(grep "rcon_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/^rcon_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- port=$(grep "port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- queryport=${port}
- rconport=${port}
- maxplayers=$(grep "maxplayers" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
-
- # Not set
- servername=${servername:-"NOT SET"}
- rconpassword=${rconpassword:-"NOT SET"}
- port=${port:-"7777"}
- queryport=${port:-"7777"}
- rconport=${rconport:-"7777"}
- maxplayers=${maxplayers:-"12"}
- fi
-}
-
-fn_info_game_sb() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- queryenabled="${unavailable}"
- rconenabled="${unavailable}"
- rconpassword="${unavailable}"
- port="21025"
- queryport="21025"
- rconport="21026"
- maxplayers="8"
- else
- servername=$(grep "serverName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e 's/serverName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- queryenabled=$(grep "runQueryServer" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e 's/runQueryServer//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- rconenabled=$(grep "runRconServer" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e 's/runRconServer//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- rconpassword=$(grep "rconServerPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e 's/rconServerPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- port=$(grep "gameServerPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
- queryport=$(grep "queryServerPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
- rconport=$(grep "rconServerPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
- maxplayers=$(grep "maxPlayers" "${servercfgfullpath}" | tr -cd '[:digit:]')
-
- # Not set
- servername=${servername:-"NOT SET"}
- queryenabled=${queryenabled:-"NOT SET"}
- rconenabled=${rconenabled:-"NOT SET"}
- rconpassword=${rconpassword:-"NOT SET"}
- port=${port:-"21025"}
- queryport=${queryport:-"21025"}
- rconport=${rconport:-"21026"}
- maxplayers=${maxplayers:-"8"}
- fi
-}
-
-fn_info_game_sbots() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- maxplayers="${unavailable}"
- else
- servername=$(grep "ServerName=" "${servercfgfullpath}" | sed -e 's/^[ \t]//g' -e '/^#/d' -e 's/ServerName//g' | tr -d '=";,:' | sed -e 's/^[ \t]//' -e 's/[ \t]*$//')
- maxplayers=$(grep "MaxPlayers=" "${servercfgfullpath}" | tr -cd '[:digit:]')
-
- # Not set
- servername=${servername:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- fi
-
- # Parameters
- port=${port:-"0"}
- queryport=${queryport:-"0"}
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- defaultmap=${defaultmap:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
-}
-
-fn_info_game_scpsl() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername=${servername:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- configip=${configip:-"0.0.0.0"}
- tickrate=${tickrate:-"NOT SET"}
- adminpassword=${adminpassword:-"NOT SET"}
- else
- servername=$(sed -nr 's/^server_name: (.*)$/\1/p' "${servercfgfullpath}")
- maxplayers=$(sed -nr 's/^max_players: (.*)$/\1/p' "${servercfgfullpath}")
- configip=$(sed -nr 's/^ipv4_bind_ip: (.*)$/\1/p' "${servercfgfullpath}")
- tickrate=$(sed -nr 's/^server_tickrate: (.*)$/\1/p' "${servercfgfullpath}")
- adminpassword=$(sed -nr 's/^administrator_query_password: (.*)$/\1/p' "${servercfgfullpath}")
- fi
-
- # Parameters
- port=${port:-"0"}
- queryport=${port}
-}
-
-fn_info_game_sdtd() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- serverpassword="${unavailable}"
- port="${zero}"
- port3="${zero}"
- queryport="${zero}"
- webadminenabled="${unavailable}"
- webadminport="${zero}"
- webadminpass="${unavailable}"
- telnetenabled="${unavailable}"
- telnetport="${zero}"
- telnetpass="${unavailable}"
- telnetip="${unavailable}"
- maxplayers="${unavailable}"
- gamemode="${unavailable}"
- gameworld="${unavailable}"
- else
- servername=$(grep "ServerName" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
- serverpassword=$(grep "ServerPassword" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
- port=$(grep "ServerPort" "${servercfgfullpath}" | grep -Eo 'value="[0-9]+"' | tr -cd '[:digit:]')
- port3=$((port + 2))
- queryport=${port:-"0"}
- webadminenabled=$(grep "ControlPanelEnabled" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
- webadminport=$(grep "ControlPanelPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
- webadminpass=$(grep "ControlPanelPassword" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
- telnetenabled=$(grep "TelnetEnabled" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
- telnetport=$(grep "TelnetPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
- telnetpass=$(grep "TelnetPassword" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
- # Telnet IP will be localhost if no password is set
- # check_ip will set the IP first. This will overwrite it.
- if [ -z "${telnetpass}" ]; then
- telnetip="127.0.0.1"
- fi
- maxplayers=$(grep "ServerMaxPlayerCount" "${servercfgfullpath}" | tr -cd '[:digit:]')
- gamemode=$(grep "GameMode" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
- gameworld=$(grep "GameWorld" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
-
- # Not set
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- port=${port:-"0"}
- queryport=${queryport:-"0"}
- webadminenabled=${webadminenabled:-"NOT SET"}
- webadminport=${webadminport:-"0"}
- webadminpass=${webadminpass:-"NOT SET"}
- telnetenabled=${telnetenabled:-"NOT SET"}
- telnetport=${telnetport:-"0"}
- telnetpass=${telnetpass:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- gamemode=${gamemode:-"NOT SET"}
- gameworld=${gameworld:-"NOT SET"}
- fi
-}
-
-fn_info_game_sf() {
- # Parameters
- servername=${selfname:-"NOT SET"}
- port=${port:-"0"}
- queryport=${queryport:-"0"}
- beaconport=${beaconport:-"0"}
-}
-
-fn_info_game_sof2() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- rconpassword="${unavailable}"
- servername="${unavailable}"
- serverpassword="${unavailable}"
- maxplayers="${zero}"
- else
- rconpassword=$(grep "rconpassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set rconpassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- servername=$(grep "sv_hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set sv_hostname//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- serverpassword=$(grep "g_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set g_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- maxplayers=$(grep "sv_maxclients" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
-
- # Not set
- rconpassword=${rconpassword:-"NOT SET"}
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- fi
-
- # Parameters
- port=${port:-"0"}
- queryport=${port}
- defaultmap=${defaultmap:-"NOT SET"}
-}
-
-fn_info_game_sol() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- adminpassword="${unavailable}"
- maxplayers="${unavailable}"
- port="${zero}"
- queryport="${zero}"
- servername="${unavailable}"
- serverpassword="${unavailable}"
- else
- adminpassword=$(grep "Admin_Password=" "${servercfgfullpath}" | awk -F '=' '{print $2}')
- maxplayers=$(grep "Max_Players=" "${servercfgfullpath}" | tr -cd '[:digit:]')
- port=$(grep "Port=" "${servercfgfullpath}" | tr -cd '[:digit:]')
- queryport="${port}"
- filesport=$((port + 10))
- servername=$(grep "Server_Name=" "${servercfgfullpath}" | awk -F '=' '{print $2}')
- serverpassword=$(grep "Game_Password=" "${servercfgfullpath}" | awk -F '=' '{print $2}')
-
- # Not set
- adminpassword=${adminpassword:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- port=${port:-"23073"}
- queryport=${queryport:-"23083"}
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- fi
-}
-
-fn_info_game_source() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- serverpassword="${unavailable}"
- rconpassword="${unavailable}"
- else
- servername=$(grep "hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/hostname//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- serverpassword=$(grep "sv_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/sv_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- rconpassword=$(grep "rcon_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/rcon_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
-
- # Not set
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- rconpassword=${rconpassword:-"NOT SET"}
- fi
-
- # Parameters
- defaultmap=${defaultmap:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- port=${port:-"0"}
- rconport=${port:-"0"}
- queryport=${port:-"0"}
- clientport=${clientport:-"0"}
- # Steamport can be between 26901-26910 and is normaly automatically set.
- # Some servers might support -steamport parameter to set
- if [ "${steamport}" == "0" ] || [ -v "${steamport}" ]; then
- steamport="$(echo "${ssinfo}" | grep "${srcdslinuxpid}" | awk '{print $5}' | grep ":269" | cut -d ":" -f2)"
- fi
-}
-
-fn_info_game_spark() {
- defaultmap=${defaultmap:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- port=${port:-"0"}
- queryport=$((port + 1))
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- webadminuser=${webadminuser:-"NOT SET"}
- webadminpass=${webadminpass:-"NOT SET"}
- webadminport=${webadminport:-"0"}
- # Commented out as displaying not set in details parameters
- #mods=${mods:-"NOT SET"}
-}
-
-fn_info_game_squad() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- maxplayers="${unavailable}"
- else
- servername=$(grep "ServerName=" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/ServerName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- maxplayers=$(grep "MaxPlayers=" "${servercfgfullpath}" | tr -cd '[:digit:]')
-
- servername=${servername:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- fi
-
- if [ ! -f "${servercfgdir}/Rcon.cfg" ]; then
- rconport=${unavailable}
- rconpassword=${unavailable}
- else
- rconport=$(grep "Port=" "${servercfgdir}/Rcon.cfg" | tr -cd '[:digit:]')
- rconpassword=$(grep "Password=" "${servercfgdir}/Rcon.cfg" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/Password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
-
- rconport=${rconport:-"0"}
- if [ -z "${rconpassword}" ] || [ ${#rconpassword} == 1 ]; then
- rconpassword="NOT SET"
- fi
-
- fi
-
- # Parameters
- port=${port:-"0"}
- queryport=${queryport:-"0"}
-}
-
-fn_info_game_st() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- serverpassword="${unavailable}"
- rconpassword="${unavailable}"
- maxplayers="${unavailable}"
- else
- servername=$(grep "SERVERNAME" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/SERVERNAME//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- serverpassword=$(grep "PASSWORD" "${servercfgfullpath}" | grep "^PASSWORD" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/PASSWORD//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- rconpassword=$(grep "RCONPASSWORD" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/RCONPASSWORD//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- maxplayers=$(grep "MAXPLAYER" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/MAXPLAYER//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
-
- # Not set
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- rconpassword=${rconpassword:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- fi
-
- # Parameters
- port=${port:-"0"}
- queryport=${queryport:-"0"}
- httpport=${port:-"0"}
- worldtype=${worldtype:-"NOT SET"}
- autosaveinterval=${autosaveinterval:-"0"}
- clearinterval=${clearinterval:-"0"}
- worldname=${worldname:-"NOT SET"}
-}
-
-fn_info_game_terraria() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- port="${zero}"
- gameworld="${unavailable}"
- maxplayers="${zero}"
- queryport="${zero}"
- else
- servername=$(grep "worldname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/worldname//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- port=$(grep "port" "${servercfgfullpath}" | tr -cd '[:digit:]')
- queryport=${port:-"0"}
- gameworld=$(grep "world=" "${servercfgfullpath}" | grep -v "//" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/world=//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- maxplayers=$(grep "maxplayers" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
-
- # Not set
- servername=${servername:-"NOT SET"}
- port=${port:-"0"}
- queryport=${queryport:-"0"}
- gameworld=${gameworld:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- fi
-}
-
-fn_info_game_stn() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- configip=${configip:-"0.0.0.0"}
- port="${zero}"
- queryport="${zero}"
- serverpassword=${serverpassword:-"NOT SET"}
- else
- servername=$(sed -nr 's/^ServerName="(.*)"/\1/p' "${servercfgfullpath}")
- configip=$(sed -nr 's/^ServerIP=([0-9]+)/\1/p' "${servercfgfullpath}")
- port=$(sed -nr 's/^ServerPort=([0-9]+)/\1/p' "${servercfgfullpath}")
- serverpassword=$(sed -nr 's/^ServerPassword=(.*)$/\1/p' "${servercfgfullpath}")
- queryport=$((port + 1))
-
- # Not set
- serverpassword=${serverpassword:-"NOT SET"}
- port=${port:-"0"}
- serverpassword=${serverpassword:-"NOT SET"}
- queryport=${queryport:-"0"}
- fi
-}
-
-fn_info_game_ti() {
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- maxplayers="${zero}"
- else
- servername=$(sed -nr 's/^ServerName="(.*)"/\1/p' "${servercfgfullpath}")
- maxplayers=$(sed -nr 's/^MaxPlayerCount=([0-9]+)/\1/' "${servercfgfullpath}")
-
- # Not set
- servername=${servername:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- fi
-
-}
-
-fn_info_game_ts3() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- dbplugin="${unavailable}"
- port="9987"
- queryport="10011"
- querysshport="10022"
- queryhttpport="10080"
- queryhttpsport="10443"
- fileport="30033"
- telnetport="10011"
- else
- dbplugin=$(grep "dbplugin=" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/dbplugin=//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- port=$(grep "default_voice_port" "${servercfgfullpath}" | tr -cd '[:digit:]')
- queryport=$(grep "query_port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- querysshport=$(grep "query_ssh_port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- queryhttpport=$(grep "query_http_port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- queryhttpsport=$(grep "query_https_port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- fileport=$(grep "filetransfer_port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- telnetport="${queryport}"
- configip=$(grep "voice_ip" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/voice_ip//g' | sed 's/,.*//' | tr -d '=\";,' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
-
- # Not set
- dbplugin=${dbplugin:-"NOT SET"}
- port=${port:-"9987"}
- queryport=${queryport:-"10011"}
- querysshport=${querysshport:-"10022"}
- queryhttpport=${queryhttpport:-"10080"}
- queryhttpsport=${queryhttpsport:-"10443"}
- fileport=${fileport:-"30033"}
- telnetport=${telnetport:-"10011"}
- configip=${configip:-"0.0.0.0"}
- fi
-}
-
-fn_info_game_tu() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- maxplayers="${zero}"
- else
- servername=$(grep "ServerTitle" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/ServerTitle//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- maxplayers=$(grep "MaxPlayers" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
-
- # Not set
- servername=${servername:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- fi
-
- # Parameters
- port=${port:-"0"}
- steamport=$((port + 1))
- queryport=${queryport:-"0"}
-}
-
-fn_info_game_tw() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="unnamed server"
- serverpassword="${unavailable}"
- rconpassword="${unavailable}"
- port="8303"
- queryport="8303"
- maxplayers="12"
- else
- servername=$(grep "sv_name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/^sv_name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- serverpassword=$(grep "password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' | grep "^password" | sed -e '/^#/d' -e 's/^password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- rconpassword=$(grep "sv_rcon_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/^sv_rcon_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- port=$(grep "sv_port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- queryport="${port}"
- maxplayers=$(grep "sv_max_clients" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
-
- # Not set
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- rconpassword=${rconpassword:-"NOT SET"}
- port=${port:-"8303"}
- queryport=${port:-"8303"}
- maxplayers=${maxplayers:-"12"}
- fi
-}
-
-fn_info_game_ut99() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- serverpassword="${unavailable}"
- adminpassword="${unavailable}"
- port="${zero}"
- queryport="${zero}"
- queryportgs="${zero}"
- webadminenabled="${unavailable}"
- webadminport="${zero}"
- webadminuser="${unavailable}"
- webadminpass="${unavailable}"
- else
- servername=$(grep "ServerName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/ServerName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' | sed 's/\r$//')
- serverpassword=$(grep "GamePassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/GamePassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' | sed 's/\r$//')
- adminpassword=$(grep "AdminPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' | sed 's/\r$//')
- port=$(grep "Port" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' | grep "^Port" | grep -v "#" | tr -cd '[:digit:]')
- queryport=$((port + 1))
- queryportgs=$(grep "OldQueryPortNumber" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- beaconport=$(grep "ServerBeaconPort" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- webadminenabled=$(grep "bEnabled" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/bEnabled//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' | sed 's/\r$//')
- httpport=$(grep "ListenPort" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- webadminuser=$(grep "AdminUsername" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminUsername//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' | sed 's/\r$//')
- webadminpass=$(grep "UTServerAdmin.UTServerAdmin" "${servercfgfullpath}" -A 4 | grep "AdminPassword" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' | sed 's/\r$//')
-
- # Not set
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- adminpassword=${adminpassword:-"NOT SET"}
- port=${port:-"0"}
- queryport=${queryport:-"0"}
- beaconport=${beaconport:-"8777"}
- queryportgs=${queryportgs:-"0"}
- webadminenabled=${webadminenabled:-"NOT SET"}
- webadminport=${webadminport:-"0"}
- webadminuser=${webadminuser:-"NOT SET"}
- webadminpass=${webadminpass:-"NOT SET"}
- fi
-
- # Parameters
- defaultmap=${defaultmap:-"NOT SET"}
-}
-
-fn_info_game_unreal2() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- serverpassword="${unavailable}"
- adminpassword="${unavailable}"
- port="${zero}"
- queryport="${zero}"
- queryportgs="${zero}"
- webadminenabled="${unavailable}"
- webadminport="${zero}"
- webadminuser="${unavailable}"
- webadminpass="${unavailable}"
- else
- servername=$(sed -nr 's/^ServerName=(.*)$/\1/p' "${servercfgfullpath}" | tr -d '=\";,:' | sed 's/\r$//')
- serverpassword=$(sed -nr 's/^GamePassword=(.*)$/\1/p' "${servercfgfullpath}" | tr -d '=\";,:' | sed 's/\r$//')
- adminpassword=$(sed -nr 's/^AdminPassword=(.*)$/\1/p' "${servercfgfullpath}" | tr -d '=\";,:' | sed 's/\r$//')
- port=$(sed -nr 's/^Port=(.*)$/\1/p' "${servercfgfullpath}" | tr -cd '[:digit:]')
- queryport=$((port + 1))
- queryportgs=$(sed -nr 's/^OldQueryPortNumber=(.*)$/\1/p' "${servercfgfullpath}" | tr -cd '[:digit:]')
- webadminenabled=$(sed -nr 's/^bEnabled=(.*)$/\1/p' "${servercfgfullpath}" | tr -d '=\";,:' | sed 's/\r$//')
- webadminport=$(sed -nr 's/^ListenPort=(.*)$/\1/p' "${servercfgfullpath}" | tr -cd '[:digit:]')
- webadminuser=$(sed -nr 's/^AdminName=(.*)$/\1/p' "${servercfgfullpath}" | tr -d '=\";,:' | sed 's/\r$//')
- webadminpass="${adminpassword}"
-
- # Not set
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- adminpassword=${adminpassword:-"NOT SET"}
- port=${port:-"0"}
- queryport=${queryport:-"0"}
- queryportgs=${queryportgs:-"0"}
- webadminenabled=${webadminenabled:-"NOT SET"}
- webadminport=${webadminport:-"0"}
- webadminuser=${webadminuser:-"NOT SET"}
- webadminpass=${webadminpass:-"NOT SET"}
- fi
-
- # Parameters
- defaultmap=${defaultmap:-"NOT SET"}
-}
-
-fn_info_game_unt() {
- # Parameters
- servername=${selfname:-"NOT SET"}
- port=${port:-"0"}
- queryport=${port}
- steamport=$((port + 1))
-}
-
-fn_info_game_ut() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- else
- servername=$(grep "ServerName" "${servercfgfullpath}" | awk -F '=' '{print $2}')
-
- # Not set
- servername=${servername:-"NOT SET"}
- fi
-
- # Parameters
- port=${port:-"0"}
- queryport=$((port + 1))
-}
-
-fn_info_game_unreal2k4() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- serverpassword="${unavailable}"
- adminpassword="${unavailable}"
- port="${zero}"
- queryport="${zero}"
- queryportgs="${zero}"
- lanport="${zero}"
- webadminenabled="${unavailable}"
- httpport="${zero}"
- webadminuser="${unavailable}"
- webadminpass="${unavailable}"
- else
- servername=$(sed -nr 's/^ServerName=(.*)$/\1/p' "${servercfgfullpath}" | tr -d '=\";,:' | sed 's/\r$//')
- serverpassword=$(sed -nr 's/^GamePassword=(.*)$/\1/p' "${servercfgfullpath}" | tr -d '=\";,:' | sed 's/\r$//')
- adminpassword=$(sed -nr 's/^AdminPassword=(.*)$/\1/p' "${servercfgfullpath}" | tr -d '=\";,:' | sed 's/\r$//')
- port=$(sed -nr 's/^Port=(.*)$/\1/p' "${servercfgfullpath}" | tr -cd '[:digit:]')
- queryport=$((port + 1))
- queryportgs=$(sed -nr 's/^OldQueryPortNumber=(.*)$/\1/p' "${servercfgfullpath}" | tr -cd '[:digit:]')
- lanport=$(grep "LANServerPort=" "${servercfgfullpath}" | tr -cd '[:digit:]')
- webadminenabled=$(sed -nr 's/^bEnabled=(.*)$/\1/p' "${servercfgfullpath}" | tr -d '=\";,:' | sed 's/\r$//')
- httpport=$(sed -nr 's/^ListenPort=(.*)$/\1/p' "${servercfgfullpath}" | tr -cd '[:digit:]')
- webadminuser=$(sed -nr 's/^AdminName=(.*)$/\1/p' "${servercfgfullpath}" | tr -d '=\";,:' | sed 's/\r$//')
- webadminpass="${adminpassword}"
-
- # Not set
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- adminpassword=${adminpassword:-"NOT SET"}
- port=${port:-"0"}
- queryport=${queryport:-"0"}
- queryportgs=${queryportgs:-"0"}
- lanport=${lanport:-"0"}
- webadminenabled=${webadminenabled:-"NOT SET"}
- httpport=${httpport:-"0"}
- webadminuser=${webadminuser:-"NOT SET"}
- webadminpass=${webadminpass:-"NOT SET"}
- fi
-}
-
-fn_info_game_ut3() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- serverpassword="${unavailable}"
- adminpassword="${unavailable}"
- maxplayers="${unavailable}"
- webadminenabled="${unavailable}"
- webadminport="${zero}"
- webadminuser="${unavailable}"
- webadminpass="${unavailable}"
- else
- servername=$(grep "ServerName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/ServerName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- serverpassword=$(grep "GamePassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/GamePassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- adminpassword=$(grep "AdminPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- maxplayers=$(grep "MaxPlayers" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- webadminenabled=$(grep "bEnabled" "${servercfgdir}/UTWeb.ini" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/bEnabled//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- webadminport=$(grep "ListenPort" "${servercfgdir}/UTWeb.ini" | grep -v "#" | tr -cd '[:digit:]')
- webadminuser="Admin"
- webadminpass=$(grep "AdminPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
-
- # Not set
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- adminpassword=${adminpassword:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- webadminenabled=${webadminenabled:-"NOT SET"}
- webadminport=${webadminport:-"0"}
- webadminuser=${webadminuser:-"NOT SET"}
- webadminpass=${webadminpass:-"NOT SET"}
- fi
-
- # Parameters
- port=${port:-"0"}
- queryport=${queryport:-"0"}
- defaultmap=${defaultmap:-"NOT SET"}
-}
-
-fn_info_game_vh() {
- # Parameters
- port=${port:-"0"}
- # Query port only enabled if public server
- if [ "${public}" != "0" ]; then
- queryport=$((port + 1))
- else
- querymode="1"
- fi
- gameworld=${gameworld:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- servername=${servername:-"NOT SET"}
-}
-
-fn_info_game_vints() {
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- maxplayers="${unavailable}"
- serverpassword="${unavailable}"
- port="${port:-"0"}"
- else
- servername=$(jq -r '.ServerName' "${servercfgfullpath}")
- maxplayers=$(jq -r '.MaxClients' "${servercfgfullpath}")
- serverpassword=$(jq -r 'select(.Password != null) | .Password' "${servercfgfullpath}")
- port=$(jq -r '.Port' "${servercfgfullpath}")
- configip=$(jq -r 'select(.Ip != null) | .Ip' "${servercfgfullpath}")
- fi
- queryport=${port:-"0"}
- serverpassword=${serverpassword:-"NOT SET"}
- configip=${configip:-"0.0.0.0"}
-}
-
-fn_info_game_vpmc() {
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- configip="0.0.0.0"
- port="25577"
- else
- servername=$(sed -nr 's/^motd\s*=\s*"(.*)"/\1/p' "${servercfgfullpath}")
- bindaddress=$(sed -nr 's/^bind\s*=\s*"([0-9.:]+)"/\1/p' "${servercfgfullpath}")
- configip=$(echo "${bindaddress}" | cut -d ':' -f 1)
- port=$(echo "${bindaddress}" | cut -d ':' -f 2)
-
- servername=${servername:-"NOT SET"}
- fi
- queryport=${port:-"25577"}
-}
-
-fn_info_game_wet() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- rconpassword="${unavailable}"
- servername="${unavailable}"
- serverpassword="${unavailable}"
- maxplayers="${zero}"
- port="${zero}"
- queryport="${zero}"
- else
- port=$(grep "set net_port" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
- queryport="${port}"
- rconpassword=$(grep "set zmq_rcon_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set zmq_rcon_password //g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//g' -e '/^\//d' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- servername=$(grep "set sv_hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set sv_hostname //g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- serverpassword=$(grep "set g_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set g_password //g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- maxplayers=$(grep "set sv_maxclients" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
- configip=$(grep "set net_ip" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set net_ip//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
-
- # Not set
- rconpassword=${rconpassword:-"NOT SET"}
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- port=${port:-"27960"}
- queryport=${queryport:-"27960"}
- configip=${configip:-"0.0.0.0"}
- fi
-}
-
-fn_info_game_wf() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- rconpassword="${unavailable}"
- servername="${unavailable}"
- maxplayers="${zero}"
- else
- rconpassword=$(grep "rcon_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set rcon_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- servername=$(grep "sv_hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set sv_hostname//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- maxplayers=$(grep "sv_maxclients" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
-
- # Not set
- rconpassword=${rconpassword:-"NOT SET"}
- servername=${servername:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- fi
-
- # Parameters
- port=${port:-"0"}
- queryport="${port:-"0"}"
- webadminport=${webadminport:-"0"}
-}
-
-fn_info_game_wmc() {
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- maxplayers="${zero}"
- port="${zero}"
- queryport="${zero}"
- queryenabled="${unavailable}"
- else
- servername=$(sed -e '/^listeners:/,/^[a-z]/!d' "${servercfgfullpath}" | sed -nr 's/^[ ]+motd: (.*)$/\1/p' | tr -d "'" | sed 's/&1//')
- queryport=$(sed -nr 's/^[ -]+query_port: ([0-9]+)/\1/p' "${servercfgfullpath}")
- queryenabled=$(sed -nr 's/^[ ]+query_enabled: (.*)$/\1/p' "${servercfgfullpath}")
- port=$(sed -nr 's/^[ ]+host: [0-9]+\.[0-9]+\.[0-9]+\.[0-9]+:([0-9]+)/\1/p' "${servercfgfullpath}")
- # the normal max_players does only show in on the client side and has no effect how many players can connect.
- maxplayers=$(sed -nr 's/^player_limit: ([-]*[0-9])/\1/p' "${servercfgfullpath}")
- configip=$(sed -nr 's/^[ ]+host: ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+):[0-9]+/\1/p' "${servercfgfullpath}")
-
- if [ "${maxplayers}" == "-1" ] || [ "${maxplayers}" == "0" ]; then
- maxplayers="UNLIMITED"
- fi
-
- # Not set
- servername=${servername:-"NOT SET"}
- queryport=${queryport:-"25577"}
- maxplayers=${maxplayers:-"0"}
- configip=${configip:-"0.0.0.0"}
- fi
-}
-
-fn_info_game_wurm() {
- # Config
- if [ ! -f "${servercfgfullpath}" ]; then
- port="${zero}"
- queryport="${zero}"
- rconpassword="${unavailable}"
- servername="${unavailable}"
- serverpassword="${unavailable}"
- adminpassword="${unavailable}"
- maxplayers="${zero}"
- else
- port=$(grep "EXTERNALPORT=" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- queryport=$(grep "QUERYPORT=" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- servername=$(grep "SERVERNAME=" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/SERVERNAME//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- serverpassword=$(grep "SERVERPASSWORD=" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/SERVERPASSWORD//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- adminpassword=$(grep "ADMINPWD=" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/ADMINPWD//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- maxplayers=$(grep "MAXPLAYERS=" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- configip=$(grep "IP" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/IP//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
-
- # Not set
- port=${port:-"3724"}
- queryport=${queryport:-"27017"}
- servername=${servername:-"NOT SET"}
- serverpassword=${serverpassword:-"NOT SET"}
- adminpassword=${adminpassword:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- fi
-}
-
-unavailable="${red}UNAVAILABLE${default}"
-zero="${red}0${default}"
-
-if [ "${shortname}" == "ac" ]; then
- fn_info_game_ac
-elif [ "${shortname}" == "ark" ]; then
- fn_info_game_ark
-elif [ "${shortname}" == "arma3" ]; then
- fn_info_game_arma3
-elif [ "${shortname}" == "armar" ]; then
- fn_info_game_armar
-elif [ "${shortname}" == "av" ]; then
- fn_info_game_av
-elif [ "${shortname}" == "bf1942" ]; then
- fn_info_game_bf1942
-elif [ "${shortname}" == "bfv" ]; then
- fn_info_game_bfv
-elif [ "${shortname}" == "bo" ]; then
- fn_info_game_bo
-elif [ "${shortname}" == "bt" ]; then
- fn_info_game_bt
-elif [ "${shortname}" == "btl" ]; then
- fn_info_game_btl
-elif [ "${shortname}" == "cd" ]; then
- fn_info_game_cd
-elif [ "${shortname}" == "ck" ]; then
- fn_info_game_ck
-elif [ "${shortname}" == "cmw" ]; then
- fn_info_game_cmw
-elif [ "${shortname}" == "cod" ]; then
- fn_info_game_cod
-elif [ "${shortname}" == "coduo" ]; then
- fn_info_game_cod
-elif [ "${shortname}" == "cod2" ]; then
- fn_info_game_cod2
-elif [ "${shortname}" == "cod4" ]; then
- fn_info_game_cod4
-elif [ "${shortname}" == "codwaw" ]; then
- fn_info_game_codwaw
-elif [ "${shortname}" == "col" ]; then
- fn_info_game_col
-elif [ "${shortname}" == "dayz" ]; then
- fn_info_game_dayz
-elif [ "${shortname}" == "dodr" ]; then
- fn_info_game_dodr
-elif [ "${shortname}" == "dst" ]; then
- fn_info_game_dst
-elif [ "${shortname}" == "eco" ]; then
- fn_info_game_eco
-elif [ "${shortname}" == "etl" ]; then
- fn_info_game_etl
-elif [ "${shortname}" == "fctr" ]; then
- fn_info_game_fctr
-elif [ "${shortname}" == "hw" ]; then
- fn_info_game_hw
-elif [ "${shortname}" == "inss" ]; then
- fn_info_game_inss
-elif [ "${shortname}" == "jc2" ]; then
- fn_info_game_jc2
-elif [ "${shortname}" == "jc3" ]; then
- fn_info_game_jc3
-elif [ "${shortname}" == "jk2" ]; then
- fn_info_game_jk2
-elif [ "${shortname}" == "kf" ]; then
- fn_info_game_kf
-elif [ "${shortname}" == "kf2" ]; then
- fn_info_game_kf2
-elif [ "${shortname}" == "lo" ]; then
- fn_info_game_lo
-elif [ "${shortname}" == "mc" ] || [ "${shortname}" == "pmc" ]; then
- fn_info_game_mc
-elif [ "${shortname}" == "mcb" ]; then
- fn_info_game_mcb
-elif [ "${shortname}" == "mh" ]; then
- fn_info_game_mh
-elif [ "${shortname}" == "mohaa" ]; then
- fn_info_game_mohaa
-elif [ "${shortname}" == "mom" ]; then
- fn_info_game_mom
-elif [ "${shortname}" == "mta" ]; then
- fn_info_game_mta
-elif [ "${shortname}" == "nec" ]; then
- fn_info_game_nec
-elif [ "${shortname}" == "onset" ]; then
- fn_info_game_onset
-elif [ "${shortname}" == "pc" ]; then
- fn_info_game_pc
-elif [ "${shortname}" == "pc2" ]; then
- fn_info_game_pc2
-elif [ "${shortname}" == "pstbs" ]; then
- fn_info_game_pstbs
-elif [ "${shortname}" == "pvr" ]; then
- fn_info_game_pvr
-elif [ "${shortname}" == "pz" ]; then
- fn_info_game_pz
-elif [ "${shortname}" == "q2" ]; then
- fn_info_game_q2
-elif [ "${shortname}" == "q3" ]; then
- fn_info_game_q3
-elif [ "${shortname}" == "ql" ]; then
- fn_info_game_ql
-elif [ "${shortname}" == "qw" ]; then
- fn_info_game_qw
-elif [ "${shortname}" == "ro" ]; then
- fn_info_game_ro
-elif [ "${shortname}" == "rtcw" ]; then
- fn_info_game_rtcw
-elif [ "${shortname}" == "rust" ]; then
- fn_info_game_rust
-elif [ "${shortname}" == "rw" ]; then
- fn_info_game_rw
-elif [ "${shortname}" == "samp" ]; then
- fn_info_game_samp
-elif [ "${shortname}" == "sb" ]; then
- fn_info_game_sb
-elif [ "${shortname}" == "sbots" ]; then
- fn_info_game_sbots
-elif [ "${shortname}" == "scpsl" ] || [ "${shortname}" == "scpslsm" ]; then
- fn_info_game_scpsl
-elif [ "${shortname}" == "sdtd" ]; then
- fn_info_game_sdtd
-elif [ "${shortname}" == "sf" ]; then
- fn_info_game_sf
-elif [ "${shortname}" == "sof2" ]; then
- fn_info_game_sof2
-elif [ "${shortname}" == "sol" ]; then
- fn_info_game_sol
-elif [ "${engine}" == "spark" ]; then
- fn_info_game_spark
-elif [ "${shortname}" == "squad" ]; then
- fn_info_game_squad
-elif [ "${shortname}" == "st" ]; then
- fn_info_game_st
-elif [ "${shortname}" == "stn" ]; then
- fn_info_game_stn
-elif [ "${shortname}" == "terraria" ]; then
- fn_info_game_terraria
-elif [ "${shortname}" == "ti" ]; then
- fn_info_game_ti
-elif [ "${shortname}" == "ts3" ]; then
- fn_info_game_ts3
-elif [ "${shortname}" == "tu" ]; then
- fn_info_game_tu
-elif [ "${shortname}" == "tw" ]; then
- fn_info_game_tw
-elif [ "${shortname}" == "unt" ]; then
- fn_info_game_unt
-elif [ "${shortname}" == "ut" ]; then
- fn_info_game_ut
-elif [ "${shortname}" == "ut2k4" ]; then
- fn_info_game_unreal2k4
-elif [ "${shortname}" == "ut3" ]; then
- fn_info_game_ut3
-elif [ "${shortname}" == "ut99" ]; then
- fn_info_game_ut99
-elif [ "${shortname}" == "vh" ]; then
- fn_info_game_vh
-elif [ "${shortname}" == "vints" ]; then
- fn_info_game_vints
-elif [ "${shortname}" == "vpmc" ]; then
- fn_info_game_vpmc
-elif [ "${shortname}" == "wet" ]; then
- fn_info_game_wet
-elif [ "${shortname}" == "wf" ]; then
- fn_info_game_wf
-elif [ "${shortname}" == "wmc" ]; then
- fn_info_game_wmc
-elif [ "${shortname}" == "wurm" ]; then
- fn_info_game_wurm
-elif [ "${engine}" == "prism3d" ]; then
- fn_info_game_prism3d
-elif [ "${engine}" == "source" ] || [ "${engine}" == "goldsrc" ]; then
- fn_info_game_source
-elif [ "${engine}" == "unreal2" ]; then
- fn_info_game_unreal2
-fi
-
-# External IP address
-# Cache external IP address for 24 hours
-if [ -f "${tmpdir}/extip.txt" ]; then
- if [ "$(find "${tmpdir}/extip.txt" -mmin +1440)" ]; then
- rm -f "${tmpdir:?}/extip.txt"
- fi
-fi
-
-if [ ! -f "${tmpdir}/extip.txt" ]; then
- extip="$(curl --connect-timeout 10 -s https://api.ipify.org 2> /dev/null)"
- exitcode=$?
- # if curl passes add extip to externalip.txt
- if [ "${exitcode}" != "0" ]; then
- echo "Unable to get external IP address"
- else
- echo "${extip}" > "${tmpdir}/extip.txt"
- fi
-else
- extip="$(cat "${tmpdir}/extip.txt")"
-fi
-
-# Alert IP address
-if [ "${displayip}" ]; then
- alertip="${displayip}"
-elif [ "${extip}" ]; then
- alertip="${extip}"
-else
- alertip="${ip}"
-fi
-
-# Steam Master Server - checks if detected by master server.
-# Checked after config init, as the queryport is needed
-if [ -z "${displaymasterserver}" ]; then
- if [ "$(command -v jq 2> /dev/null)" ]; then
- if [ "${ip}" ] && [ "${port}" ]; then
- if [ "${steammaster}" == "true" ] || [ "${commandname}" == "DEV-QUERY-RAW" ]; then
- # Will query server IP addresses first.
- for queryip in "${queryips[@]}"; do
- masterserver="$(curl --connect-timeout 10 -m 3 -s "https://api.steampowered.com/ISteamApps/GetServersAtAddress/v0001?addr=${queryip}&format=json" | jq --arg port "${port}" --arg queryport "${queryport}" '.response.servers[] | select((.gameport == ($port|tonumber) or (.gameport == ($queryport|tonumber)))) | .addr' | wc -l 2> /dev/null)"
- done
- # Should that not work it will try the external IP.
- if [ "${masterserver}" == "0" ]; then
- masterserver="$(curl --connect-timeout 10 -m 3 -s "https://api.steampowered.com/ISteamApps/GetServersAtAddress/v0001?addr=${extip}&format=json" | jq --arg port "${port}" --arg queryport "${queryport}" '.response.servers[] | select((.gameport == ($port|tonumber) or (.gameport == ($queryport|tonumber)))) | .addr' | wc -l 2> /dev/null)"
- fi
- if [ "${masterserver}" == "0" ]; then
- displaymasterserver="false"
- else
- displaymasterserver="true"
- fi
- fi
- fi
- fi
-fi
diff --git a/lgsm/functions/info_messages.sh b/lgsm/functions/info_messages.sh
deleted file mode 100644
index 3766049c60..0000000000
--- a/lgsm/functions/info_messages.sh
+++ /dev/null
@@ -1,1849 +0,0 @@
-#!/bin/bash
-# LinuxGSM info_messages.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Defines server info messages for details and alerts.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-# Separator is different for details.
-fn_messages_separator() {
- if [ "${commandname}" == "DETAILS" ]; then
- printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' =
- else
- echo -e "================================="
- fi
-}
-
-# Removes the passwords form all but details.
-fn_info_message_password_strip() {
- if [ "${commandname}" != "DETAILS" ]; then
- if [ "${serverpassword}" ]; then
- serverpassword="********"
- fi
-
- if [ "${rconpassword}" ]; then
- rconpassword="********"
- fi
-
- if [ "${adminpassword}" ]; then
- adminpassword="********"
- fi
-
- if [ "${statspassword}" ]; then
- statspassword="********"
- fi
-
- if [ "${webadminpass}" ]; then
- webadminpass="********"
- fi
-
- if [ "${telnetpass}" ]; then
- telnetpass="********"
- fi
-
- if [ "${wsapikey}" ]; then
- wsapikey="********"
- fi
-
- if [ "${gslt}" ]; then
- gslt="********"
- fi
- fi
-}
-
-# Alert Summary
-# used with alertlog
-fn_info_message_head() {
- echo -e ""
- echo -e "${lightyellow}Alert Summary${default}"
- fn_messages_separator
- echo -e "Message"
- echo -e "${alertbody}"
- echo -e ""
- echo -e "Game"
- echo -e "${gamename}"
- echo -e ""
- echo -e "Server name"
- echo -e "${servername}"
- echo -e ""
- echo -e "Hostname"
- echo -e "${HOSTNAME}"
- echo -e ""
- echo -e "Server IP"
- echo -e "${ip}:${port}"
-}
-
-fn_info_message_distro() {
- #
- # Distro Details
- # =================================
- # Date: Sun 21 Feb 2021 09:22:53 AM UTC
- # Distro: Ubuntu 20.04.2 LTS
- # Arch: x86_64
- # Kernel: 5.4.0-65-generic
- # Hostname: server
- # Uptime: 16d, 5h, 18m
- # tmux: tmux 3.0a
- # glibc: 2.31
-
- echo -e ""
- echo -e "${lightyellow}Distro Details${default}"
- fn_messages_separator
- {
- echo -e "${lightblue}Date:\t${default}$(date)"
- echo -e "${lightblue}Distro:\t${default}${distroname}"
- echo -e "${lightblue}Arch:\t${default}${arch}"
- echo -e "${lightblue}Kernel:\t${default}${kernel}"
- echo -e "${lightblue}Hostname:\t${default}${HOSTNAME}"
- echo -e "${lightblue}Uptime:\t${default}${days}d, ${hours}h, ${minutes}m"
- echo -e "${lightblue}tmux:\t${default}${tmuxv}"
- echo -e "${lightblue}glibc:\t${default}${glibcversion}"
- if [ -n "${javaram}" ]; then
- echo -e "${lightblue}Java:\t${default}${javaversion}"
- fi
- } | column -s $'\t' -t
-}
-
-fn_info_message_server_resource() {
- #
- # Server Resource
- # =================================
- # CPU
- # Model: AMD EPYC 7601 32-Core Processor
- # Cores: 2
- # Frequency: 2199.994MHz
- # Avg Load: 0.01, 0.05, 0.18
- #
- # Memory
- # Mem: total used free cached available
- # Physical: 3.9GB 350MB 3.3GB 3.2GB 3.3GB
- # Swap: 512MB 55MB 458MB
- #
- # Storage
- # Filesystem: /dev/sda
- # Total: 79G
- # Used: 73G
- # Available: 1.4G
- #
- # Network
- # IP: 0.0.0.0
- # Internet IP: 176.58.124.96
-
- echo -e ""
- echo -e "${lightyellow}Server Resource${default}"
- fn_messages_separator
- {
- echo -e "${lightyellow}CPU\t${default}"
- echo -e "${lightblue}Model:\t${default}${cpumodel}"
- echo -e "${lightblue}Cores:\t${default}${cpucores}"
- echo -e "${lightblue}Frequency:\t${default}${cpufreqency}MHz"
- echo -e "${lightblue}Avg Load:\t${default}${load}"
- } | column -s $'\t' -t
- echo -e ""
- {
- echo -e "${lightyellow}Memory\t${default}"
- echo -e "${lightblue}Mem:\t${lightblue}total\tused\tfree\tcached\tavailable${default}"
- echo -e "${lightblue}Physical:\t${default}${physmemtotal}\t${physmemused}\t${physmemfree}\t${physmemcached}\t${physmemavailable}${default}"
- echo -e "${lightblue}Swap:\t${default}${swaptotal}\t${swapused}\t${swapfree}${default}"
- } | column -s $'\t' -t
- echo -e ""
- {
- echo -e "${lightyellow}Storage${default}"
- echo -e "${lightblue}Filesystem:\t${default}${filesystem}"
- echo -e "${lightblue}Total:\t\t${default}${totalspace}"
- echo -e "${lightblue}Used:\t\t${default}${usedspace}"
- echo -e "${lightblue}Available:\t${default}${availspace}"
- } | column -s $'\t' -t
- echo -e ""
- {
- echo -e "${lightyellow}Network${default}"
- if [ -n "${netint}" ]; then
- echo -e "${lightblue}Interface:\t${default}${netint}"
- fi
- if [ -n "${netlink}" ]; then
- echo -e "${lightblue}Link Speed:\t${default}${netlink}"
- fi
- echo -e "${lightblue}IP:\t${default}${ip}"
- if [ "${ip}" != "${extip}" ]; then
- echo -e "${lightblue}Internet IP:\t${default}${extip}"
- fi
- } | column -s $'\t' -t
-}
-
-fn_info_message_gameserver_resource() {
- #
- # Game Server Resource Usage
- # =================================
- # CPU Used: 1.1%
- # Mem Used: 4.8% 189MB
- #
- # Storage
- # Total: 241M
- # Serverfiles: 240M
- # Backups: 24K
-
- echo -e ""
- echo -e "${lightyellow}Game Server Resource Usage${default}"
- fn_messages_separator
- {
- if [ "${status}" != "0" ] && [ -v status ]; then
- if [ -n "${cpuused}" ]; then
- echo -e "${lightblue}CPU Used:\t${default}${cpuused}%${default}"
- else
- echo -e "${lightblue}CPU Used:\t${red}unknown${default}"
- fi
- if [ -n "${memused}" ]; then
- echo -e "${lightblue}Mem Used:\t${default}${pmemused}%\t${memused}MB${default}"
- else
- echo -e "${lightblue}Mem Used:\t${default}${pmemused}\t${red}unknown${default}"
- fi
- else
- echo -e "${lightblue}CPU Used:\t${default}0%${default}"
- echo -e "${lightblue}Mem Used:\t${default}0%\t0MB${default}"
- fi
- } | column -s $'\t' -t
- echo -e ""
- {
- echo -e "${lightyellow}Storage${default}"
- echo -e "${lightblue}Total:\t${default}${rootdirdu}"
- echo -e "${lightblue}Serverfiles:\t${default}${serverfilesdu}"
- if [ -d "${backupdir}" ]; then
- echo -e "${lightblue}Backups:\t${default}${backupdirdu}"
- fi
- } | column -s $'\t' -t
-}
-
-fn_info_message_gameserver() {
- #
- # Counter-Strike: Global Offensive Server Details
- # =================================
- # Server name: LinuxGSM
- # Server IP: 0.0.0.0:27015
- # Internet IP: 176.48.124.96:34197
- # Server password: NOT SET
- # RCON password: adminF54CC0VR
- # Players: 0/16
- # Current map: de_mirage
- # Default map: de_mirage
- # Game type: 0
- # Game mode: 0
- # Tick rate: 64
- # Master Server: listed
- # Status: STARTED
-
- echo -e ""
- echo -e "${lightgreen}${gamename} Server Details${default}"
- fn_info_message_password_strip
- fn_messages_separator
- {
- # Server name
- if [ -n "${gdname}" ]; then
- echo -e "${lightblue}Server name:\t${default}${gdname}"
- elif [ -n "${servername}" ]; then
- echo -e "${lightblue}Server name:\t${default}${servername}"
- fi
-
- # Server description
- if [ -n "${serverdescription}" ]; then
- echo -e "${lightblue}Server Description:\t${default}${serverdescription}"
- fi
-
- # Appid
- if [ -n "${appid}" ]; then
- echo -e "${lightblue}App ID:\t${default}${appid}"
- fi
-
- # Branch
- if [ -n "${branch}" ]; then
- echo -e "${lightblue}Branch:\t${default}${branch}"
- fi
-
- # Beta Password
- if [ -n "${betapassword}" ]; then
- echo -e "${lightblue}Beta Password:\t${default}${betapassword}"
- fi
-
- # Server Version
- if [ -n "${gdversion}" ]; then
- echo -e "${lightblue}Server Version:\t${default}${gdversion}"
- fi
-
- # Server ip
- echo -e "${lightblue}Server IP:\t${default}${ip}:${port}"
-
- # Internet ip
- if [ -n "${extip}" ]; then
- if [ "${ip}" != "${extip}" ]; then
- echo -e "${lightblue}Internet IP:\t${default}${extip}:${port}"
- fi
- fi
-
- # Display ip
- if [ -n "${displayip}" ]; then
- echo -e "${lightblue}Display IP:\t${default}${displayip}:${port}"
- fi
-
- # Server password
- if [ -n "${serverpassword}" ]; then
- echo -e "${lightblue}Server password:\t${default}${serverpassword}"
- fi
-
- # Query enabled (Starbound)
- if [ -n "${queryenabled}" ]; then
- echo -e "${lightblue}Query enabled:\t${default}${queryenabled}"
- fi
-
- # RCON enabled (Starbound)
- if [ -n "${rconenabled}" ]; then
- echo -e "${lightblue}RCON enabled:\t${default}${rconenabled}"
- fi
-
- # RCON password
- if [ -n "${rconpassword}" ]; then
- echo -e "${lightblue}RCON password:\t${default}${rconpassword}"
- fi
-
- # RCON web (Rust)
- if [ -n "${rconweb}" ]; then
- echo -e "${lightblue}RCON web:\t${default}${rconweb}"
- fi
-
- # Admin password
- if [ -n "${adminpassword}" ]; then
- echo -e "${lightblue}Admin password:\t${default}${adminpassword}"
- fi
-
- # Stats password (Quake Live)
- if [ -n "${statspassword}" ]; then
- echo -e "${lightblue}Stats password:\t${default}${statspassword}"
- fi
-
- # Players
- if [ "${querystatus}" != "0" ]; then
- if [ -n "${maxplayers}" ]; then
- echo -e "${lightblue}Maxplayers:\t${default}${maxplayers}"
- fi
- else
- if [ -n "${gdplayers}" ] && [ -n "${gdmaxplayers}" ]; then
- echo -e "${lightblue}Players:\t${default}${gdplayers}/${gdmaxplayers}"
- elif [ -n "${gdplayers}" ] && [ -n "${maxplayers}" ]; then
- echo -e "${lightblue}Players:\t${default}${gdplayers}/${maxplayers}"
- elif [ -z "${gdplayers}" ] && [ -n "${gdmaxplayers}" ]; then
- echo -e "${lightblue}Players:\t${default}0/${gdmaxplayers}"
- elif [ -n "${gdplayers}" ] && [ -z "${gdmaxplayers}" ]; then
- echo -e "${lightblue}Players:\t${default}${gdplayers}/∞"
- elif [ -z "${gdplayers}" ] && [ -z "${gdmaxplayers}" ] && [ -n "${maxplayers}" ]; then
- echo -e "${lightblue}Maxplayers:\t${default}${maxplayers}"
- fi
- fi
-
- # Reverved Slots
- if [ -n "${statspassword}" ]; then
- echo -e "${lightblue}Reserved Slots:\t${default}${reservedslots}"
- fi
-
- # Bots
- if [ -n "${gdbots}" ]; then
- echo -e "${lightblue}Bots:\t${default}${gdbots}"
- fi
-
- # Current map
- if [ -n "${gdmap}" ]; then
- echo -e "${lightblue}Current map:\t${default}${gdmap}"
- fi
-
- # Default map
- if [ -n "${defaultmap}" ]; then
- echo -e "${lightblue}Default map:\t${default}${defaultmap}"
- fi
-
- if [ -n "${defaultscenario}" ]; then
- # Current scenario (Insurgency: Sandstorm)
- if [ -n "${gdgamemode}" ]; then
- echo -e "${lightblue}Current scenario:\t${default}${gdgamemode}"
- fi
- else
- # Current game mode
- if [ -n "${gdgamemode}" ]; then
- echo -e "${lightblue}Current game mode:\t${default}${gdgamemode}"
- fi
- fi
-
- # Default scenario
- if [ -n "${defaultscenario}" ]; then
- echo -e "${lightblue}Default scenario:\t${default}${defaultscenario}"
- fi
-
- # Game type
- if [ -n "${gametype}" ]; then
- echo -e "${lightblue}Game type:\t${default}${gametype}"
- fi
-
- # Game mode
- if [ -n "${gamemode}" ]; then
- echo -e "${lightblue}Game mode:\t${default}${gamemode}"
- fi
-
- # Game world
- if [ -n "${gameworld}" ]; then
- echo -e "${lightblue}Game world:\t${default}${gameworld}"
- fi
-
- # Tick rate
- if [ -n "${tickrate}" ]; then
- echo -e "${lightblue}Tick rate:\t${default}${tickrate}"
- fi
-
- # Sharding (Don't Starve Together)
- if [ -n "${sharding}" ]; then
- echo -e "${lightblue}Sharding:\t${default}${sharding}"
- fi
-
- # Master (Don't Starve Together)
- if [ -n "${master}" ]; then
- echo -e "${lightblue}Master:\t${default}${master}"
- fi
-
- # Shard (Don't Starve Together)
- if [ -n "${shard}" ]; then
- echo -e "${lightblue}Shard:\t${default}${shard}"
- fi
-
- # Cluster (Don't Starve Together)
- if [ -n "${cluster}" ]; then
- echo -e "${lightblue}Cluster:\t${default}${cluster}"
- fi
-
- # Cave (Don't Starve Together)
- if [ -n "${cave}" ]; then
- echo -e "${lightblue}Cave:\t${default}${cave}"
- fi
-
- # Creativemode (Hurtworld)
- if [ -n "${creativemode}" ]; then
- echo -e "${lightblue}Creativemode:\t${default}${creativemode}"
- fi
-
- # TeamSpeak dbplugin
- if [ -n "${dbplugin}" ]; then
- echo -e "${lightblue}dbplugin:\t${default}${dbplugin}"
- fi
-
- # ASE (Multi Theft Auto)
- if [ -n "${ase}" ]; then
- echo -e "${lightblue}ASE:\t${default}${ase}"
- fi
-
- # Save interval (Rust)
- if [ -n "${saveinterval}" ]; then
- echo -e "${lightblue}Save interval:\t${default}${saveinterval}s"
- fi
-
- # Seed (Rust)
- if [ -n "${seed}" ]; then
- echo -e "${lightblue}Seed:\t${default}${seed}"
- fi
-
- # Salt (Rust)
- if [ -n "${salt}" ]; then
- echo -e "${lightblue}Salt:\t${default}${salt}"
- fi
-
- # World Size (Rust)
- if [ -n "${worldsize}" ]; then
- echo -e "${lightblue}World size:\t${default}${worldsize}m"
- fi
-
- # Random map rotation mode (Squad and Post Scriptum)
- if [ -n "${randommap}" ]; then
- echo -e "${lightblue}Map rotation:\t${default}${randommap}"
- fi
-
- # Server Version (Jedi Knight II: Jedi Outcast)
- if [ -n "${serverversion}" ]; then
- echo -e "${lightblue}Server Version:\t${default}${serverversion}"
- fi
-
- # authentication token (Factorio)
- if [ -n "${authtoken}" ]; then
- echo -e "${lightblue}Auth Token:\t${default}${authtoken}"
- fi
-
- # savegameinterval (Factorio)
- if [ -n "${savegameinterval}" ]; then
- echo -e "${lightblue}Savegame Interval:\t${default}${savegameinterval}"
- fi
-
- # versioncount (Factorio)
- if [ -n "${versioncount}" ]; then
- echo -e "${lightblue}Version Count:\t${default}${versioncount}"
- fi
-
- # Listed on Master server
- if [ -n "${displaymasterserver}" ]; then
- if [ "${displaymasterserver}" == "true" ]; then
- echo -e "${lightblue}Master server:\t${green}listed${default}"
- else
- echo -e "${lightblue}Master server:\t${red}not listed${default}"
- fi
- fi
-
- # Game server status
- if [ "${status}" == "0" ]; then
- echo -e "${lightblue}Status:\t${red}STOPPED${default}"
- else
- echo -e "${lightblue}Status:\t${green}STARTED${default}"
- fi
- } | column -s $'\t' -t
- echo -e ""
-}
-
-fn_info_message_script() {
- # csgoserver Script Details
- # =================================
- # Script name: csgoserver
- # LinuxGSM version: v21.1.3
- # glibc required: 2.18
- # Discord alert: off
- # Email alert: off
- # Gotify alert: off
- # IFTTT alert: off
- # Mailgun (email) alert: off
- # Pushbullet alert: off
- # Pushover alert: off
- # Rocketchat alert: off
- # Slack alert: off
- # Telegram alert: off
- # Update on start: off
- # User: lgsm
- # Location: /home/lgsm/csgoserver
- # Config file: /home/lgsm/csgoserver/serverfiles/csgo/cfg/csgoserver.cfg
-
- echo -e "${lightgreen}${selfname} Script Details${default}"
- fn_messages_separator
- {
- # Script name
- echo -e "${lightblue}Script name:\t${default}${selfname}"
-
- # LinuxGSM version
- if [ -n "${version}" ]; then
- echo -e "${lightblue}LinuxGSM version:\t${default}${version}"
- fi
-
- # glibc required
- if [ -n "${glibc}" ]; then
- if [ "${glibc}" == "null" ]; then
- # Glibc is not required.
- :
- elif [ -z "${glibc}" ]; then
- echo -e "${lightblue}glibc required:\t${red}UNKNOWN${default}"
- elif [ "$(printf '%s\n'${glibc}'\n' ${glibcversion} | sort -V | head -n 1)" != "${glibc}" ]; then
- echo -e "${lightblue}glibc required:\t${red}${glibc} ${default}(${red}distro glibc ${glibcversion} too old${default})"
- else
- echo -e "${lightblue}glibc required:\t${green}${glibc}${default}"
- fi
- fi
-
- # Discord alert
- echo -e "${lightblue}Discord alert:\t${default}${discordalert}"
- # Email alert
- echo -e "${lightblue}Email alert:\t${default}${emailalert}"
- # Gotify alert
- echo -e "${lightblue}Gotify alert:\t${default}${gotifyalert}"
- # IFTTT alert
- echo -e "${lightblue}IFTTT alert:\t${default}${iftttalert}"
- # Mailgun alert
- echo -e "${lightblue}Mailgun (email) alert:\t${default}${mailgunalert}"
- # Pushbullet alert
- echo -e "${lightblue}Pushbullet alert:\t${default}${pushbulletalert}"
- # Pushover alert
- echo -e "${lightblue}Pushover alert:\t${default}${pushoveralert}"
- # Rocketchat alert
- echo -e "${lightblue}Rocketchat alert:\t${default}${rocketchatalert}"
- # Slack alert
- echo -e "${lightblue}Slack alert:\t${default}${slackalert}"
- # Telegram alert
- echo -e "${lightblue}Telegram alert:\t${default}${telegramalert}"
-
- # Update on start
- if [ -n "${updateonstart}" ]; then
- echo -e "${lightblue}Update on start:\t${default}${updateonstart}"
- fi
-
- # User
- echo -e "${lightblue}User:\t${default}$(whoami)"
-
- # Script location
- echo -e "${lightblue}Location:\t${default}${rootdir}"
-
- # Config file location
- if [ -n "${servercfgfullpath}" ]; then
- if [ -f "${servercfgfullpath}" ]; then
- echo -e "${lightblue}Config file:\t${default}${servercfgfullpath}"
- elif [ -d "${servercfgfullpath}" ]; then
- echo -e "${lightblue}Config dir:\t${default}${servercfgfullpath}"
- else
- echo -e "${lightblue}Config file:\t${default}${red}${servercfgfullpath}${default} (${red}FILE MISSING${default})"
- fi
- fi
-
- # Network config file location (ARMA 3)
- if [ -n "${networkcfgfullpath}" ]; then
- echo -e "${lightblue}Network config file:\t${default}${networkcfgfullpath}"
- fi
- } | column -s $'\t' -t
-}
-
-fn_info_message_backup() {
- #
- # Backups
- # =================================
- # No. of backups: 1
- # Latest backup:
- # date: Fri May 6 18:34:19 UTC 2016
- # file: /home/lgsm/qlserver/backups/ql-server-2016-05-06-183239.tar.gz
- # size: 945M
-
- echo -e ""
- echo -e "${lightgreen}Backups${default}"
- fn_messages_separator
- if [ ! -d "${backupdir}" ] || [ "${backupcount}" == "0" ]; then
- echo -e "No Backups created"
- else
- {
- echo -e "${lightblue}No. of backups:\t${default}${backupcount}"
- echo -e "${lightblue}Latest backup:${default}"
- if [ "${lastbackupdaysago}" == "0" ]; then
- echo -e "${lightblue} date:\t${default}${lastbackupdate} (less than 1 day ago)"
- elif [ "${lastbackupdaysago}" == "1" ]; then
- echo -e "${lightblue} date:\t${default}${lastbackupdate} (1 day ago)"
- else
- echo -e "${lightblue} date:\t${default}${lastbackupdate} (${lastbackupdaysago} days ago)"
- fi
- echo -e "${lightblue} file:\t${default}${lastbackup}"
- echo -e "${lightblue} size:\t${default}${lastbackupsize}"
- } | column -s $'\t' -t
- fi
-}
-
-fn_info_message_commandlineparms() {
- #
- # Command-line Parameters
- # =================================
- # ./run_server_x86.sh +set net_strict 1
-
- echo -e ""
- echo -e "${lightgreen}Command-line Parameters${default}"
- fn_info_message_password_strip
- fn_messages_separator
- if [ "${serverpassword}" == "NOT SET" ]; then
- unset serverpassword
- fi
- fn_reload_startparameters
- echo -e "${preexecutable} ${executable} ${startparameters}"
-}
-
-fn_info_message_ports_edit() {
- #
- # Ports
- # =================================
- # Change ports by editing the parameters in:
- # /home/lgsm/qlserver/serverfiles/baseq3/ql-server.cfg
- echo -e ""
- echo -e "${lightgreen}Ports${default}"
- fn_messages_separator
- echo -e "${lightblue}Change ports by editing the parameters in:${default}"
-
- startparameterslocation="${red}UNKNOWN${default}"
- # engines/games that require editing in the config file.
- local ports_edit_array=("ac" "arma3" "armar" "bo" "bt" "cd" "dst" "eco" "idtech2" "idtech3" "idtech3_ql" "jc2" "jc3" "lwjgl2" "mcb" "nec" "pc" "pc2" "prism3d" "pz" "qw" "refractor" "renderware" "rw" "sb" "sdtd" "st" "stn" "ts3" "tw" "terraria" "unreal" "unreal2" "unreal3" "vints" "wurm")
- for port_edit in "${ports_edit_array[@]}"; do
- if [ "${shortname}" == "ut3" ]; then
- startparameterslocation="${servercfgdir}/UTWeb.ini"
- elif [ "${shortname}" == "kf2" ]; then
- startparameterslocation="${servercfgdir}/LinuxServer-KFEngine.ini\n${servercfgdir}/KFWeb.ini"
- elif [ "${engine}" == "${port_edit}" ] || [ "${gamename}" == "${port_edit}" ] || [ "${shortname}" == "${port_edit}" ]; then
- startparameterslocation="${servercfgfullpath}"
- fi
- done
- # engines/games that require editing the start parameters.
- local ports_edit_array=("av" "ck" "col" "fctr" "goldsrc" "hw" "iw3.0" "ioquake3" "qfusion" "rust" "scpsl" "scpslsm" "sol" "spark" "source" "unreal4" "arma3" "dayz" "unt" "vh")
- for port_edit in "${ports_edit_array[@]}"; do
- if [ "${engine}" == "${port_edit}" ] || [ "${gamename}" == "${port_edit}" ] || [ "${shortname}" == "${port_edit}" ]; then
- startparameterslocation="${configdirserver}"
- fi
- done
- echo -e "${startparameterslocation}"
- echo -e ""
-}
-
-fn_info_message_ports() {
- echo -e "${lightblue}Useful port diagnostic command:${default}"
- if [ "${shortname}" == "armar" ]; then
- echo -e "ss -tuplwn | grep enfMain"
- elif [ "${shortname}" == "av" ]; then
- echo -e "ss -tuplwn | grep AvorionServer"
- elif [ "${shortname}" == "bf1942" ]; then
- echo -e "ss -tuplwn | grep bf1942_lnxded"
- elif [ "${shortname}" == "mc" ] || [ "${shortname}" == "nec" ] || [ "${shortname}" == "pmc" ] || [ "${shortname}" == "rw" ] || [ "${shortname}" == "vpmc" ] || [ "${shortname}" == "wmc" ]; then
- echo -e "ss -tuplwn | grep java"
- elif [ "${shortname}" == "terraria" ]; then
- echo -e "ss -tuplwn | grep Main"
- elif [ "${engine}" == "source" ]; then
- echo -e "ss -tuplwn | grep srcds_linux"
- elif [ "${engine}" == "goldsrc" ]; then
- echo -e "ss -tuplwn | grep hlds_linux"
- else
- executableshort="$(basename "${executable}" | cut -c -15)"
- echo -e "ss -tuplwn | grep ${executableshort}"
- fi
- echo -e ""
-}
-
-fn_info_message_statusbottom() {
- echo -e ""
- if [ "${status}" == "0" ]; then
- echo -e "${lightblue}Status:\t${red}STOPPED${default}"
- else
- echo -e "${lightblue}Status:\t${green}STARTED${default}"
- fi
- echo -e ""
-}
-
-fn_info_logs() {
- echo -e ""
- echo -e "${selfname} Logs"
- echo -e "================================="
-
- if [ -n "${lgsmlog}" ]; then
- echo -e "\nScript log\n==================="
- if [ ! "$(ls -A "${lgsmlogdir}")" ]; then
- echo -e "${lgsmlogdir} (NO LOG FILES)"
- elif [ ! -s "${lgsmlog}" ]; then
- echo -e "${lgsmlog} (LOG FILE IS EMPTY)"
- else
- echo -e "${lgsmlog}"
- tail -25 "${lgsmlog}"
- fi
- echo -e ""
- fi
-
- if [ -n "${consolelog}" ]; then
- echo -e "\nConsole log\n===================="
- if [ ! "$(ls -A "${consolelogdir}")" ]; then
- echo -e "${consolelogdir} (NO LOG FILES)"
- elif [ ! -s "${consolelog}" ]; then
- echo -e "${consolelog} (LOG FILE IS EMPTY)"
- else
- echo -e "${consolelog}"
- tail -25 "${consolelog}" | awk '{ sub("\r$", ""); print }'
- fi
- echo -e ""
- fi
-
- if [ -n "${gamelogdir}" ]; then
- echo -e "\nServer log\n==================="
- if [ ! "$(ls -A "${gamelogdir}")" ]; then
- echo -e "${gamelogdir} (NO LOG FILES)"
- else
- echo -e "${gamelogdir}"
- # dos2unix sed 's/\r//'
- tail "${gamelogdir}"/* 2> /dev/null | grep -v "==>" | sed '/^$/d' | sed 's/\r//' | tail -25
- fi
- echo -e ""
- fi
-}
-
-# Engine/Game Specific details
-
-# Function used to generate port info. by passing info to function. (Reduces repeating code)
-# example output
-# DESCRIPTION PORT PROTOCOL LISTEN
-# Game 7777 udp 1
-# RAW UDP Socket 7778 udp 1
-# Query 27015 udp 1
-# RCON 27020 tcp 1
-
-fn_port() {
- if [ "${1}" == "header" ]; then
- echo -e "${lightblue}DESCRIPTION\tPORT\tPROTOCOL\tLISTEN${default}"
- else
- portname="${1}"
- porttype="${2}"
- portprotocol="${3}"
- echo -e "${portname}\t${!porttype}\t${portprotocol}\t$(echo "${ssinfo}" | grep "${portprotocol}" | grep -c "${!porttype}")"
- fi
-}
-
-fn_info_message_ac() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Game" port tcp
- fn_port "Query" queryport udp
- fn_port "HTTP" httpport tcp
- } | column -s $'\t' -t
-}
-
-fn_info_message_ark() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "RAW UDP Socket" rawport udp
- fn_port "Query" queryport udp
- fn_port "RCON" rconport tcp
- } | column -s $'\t' -t
-}
-
-fn_info_message_arma3() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Voice" voiceport udp
- fn_port "Query" queryport udp
- fn_port "Steam Master" steammasterport udp
- fn_port "Voice (unused)" voiceunusedport udp
- fn_port "BattleEye" battleeyeport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_armar() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Steam Query" queryport udp
- fn_port "BattleEye" battleeyeport tcp
- } | column -s $'\t' -t
-}
-
-fn_info_message_av() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- fn_port "Steam Master" steammasterport udp
- fn_port "Steam Query" steamqueryport udp
- fn_port "RCON" rconport tcp
- } | column -s $'\t' -t
-}
-
-fn_info_message_bf1942() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_bfv() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_bo() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_bt() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_btl() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- fn_port "RCON" rconport tcp
- } | column -s $'\t' -t
-}
-
-fn_info_messages_cd() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Steam" steamport udp
- fn_port "RCON" rconport tcp
- } | column -s $'\t' -t
-}
-
-fn_info_messages_ck() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_cmw() {
- fn_info_message_password_strip
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- fn_port "RCON" rconport tcp
- } | column -s $'\t' -t
-}
-
-fn_info_message_cod() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_coduo() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_cod2() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_cod4() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_codwaw() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_col() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport tcp
- fn_port "Steam" steamport tcp
- } | column -s $'\t' -t
-}
-
-fn_info_message_csgo() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport tcp
- fn_port "RCON" rconport tcp
- fn_port "SourceTV" sourcetvport udp
- fn_port "Client" clientport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_dayz() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query Steam" queryport udp
- fn_port "Steam Master" steammasterport udp
- fn_port "BattleEye" battleeyeport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_dodr() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_dst() {
- {
- fn_port "header"
- fn_port "Game: Server" port udp
- fn_port "Game: Master" masterport udp
- fn_port "Steam: Auth" steamauthport udp
- fn_port "Steam: Master" steammasterport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_eco() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Web Admin" webadminport tcp
- } | column -s $'\t' -t
-}
-
-fn_info_message_etl() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_fctr() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "RCON" rconport tcp
- } | column -s $'\t' -t
-}
-
-fn_info_message_goldsrc() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Client" clientport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_hw() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_ins() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport tcp
- fn_port "RCON" rconport tcp
- fn_port "SourceTV" sourcetvport udp
- fn_port "Client" clientport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_inss() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- fn_port "RCON" rconport tcp
- } | column -s $'\t' -t
-}
-
-fn_info_message_jc2() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_jc3() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- fn_port "Steam" steamport udp
- fn_port "HTTP" httpport tcp
- } | column -s $'\t' -t
-}
-
-fn_info_message_jk2() {
- {
- fn_port "header"
- fn_port "Game" port udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_kf() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- fn_port "Query (GameSpy)" queryportgs udp
- fn_port "Web Admin" webadminport tcp
- fn_port "LAN" lanport udp
- fn_port "Steam" steamport udp
- fn_port "Steam Master" steammasterport udp
- } | column -s $'\t' -t
- echo -e ""
- echo -e "${lightgreen}${servername} Web Admin${default}"
- fn_messages_separator
- {
- echo -e "${lightblue}Web Admin enabled:\t${default}${webadminenabled}"
- echo -e "${lightblue}Web Admin url:\t${default}http://${webadminip}:${webadminport}"
- echo -e "${lightblue}Web Admin username:\t${default}${webadminuser}"
- echo -e "${lightblue}Web Admin password:\t${default}${webadminpass}"
- } | column -s $'\t' -t
-}
-
-fn_info_message_kf2() {
- fn_info_message_password_strip
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- fn_port "Web Admin" webadminport tcp
- } | column -s $'\t' -t
- echo -e ""
- echo -e "${lightgreen}${servername} Web Admin${default}"
- fn_messages_separator
- {
- echo -e "${lightblue}Web Admin enabled:\t${default}${webadminenabled}"
- echo -e "${lightblue}Web Admin url:\t${default}http://${webadminip}:${webadminport}"
- echo -e "${lightblue}Web Admin username:\t${default}${webadminuser}"
- echo -e "${lightblue}Web Admin password:\t${default}${webadminpass}"
- } | column -s $'\t' -t
-}
-
-fn_info_message_lo() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_mc() {
- {
- fn_port "header"
- fn_port "Game" port tcp
- fn_port "Query" queryport udp
- fn_port "RCON" rconport tcp
- } | column -s $'\t' -t
-}
-
-fn_info_message_mcb() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Game" portipv6 udp6
- } | column -s $'\t' -t
-}
-
-fn_info_message_mh() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- fn_port "Beacon" beaconport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_mohaa() {
- {
- fn_port "header"
- fn_port "Game" port udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_mom() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Beacon" beaconport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_mta() {
- {
- fn_port "header"
- fn_port "Game" port udp
- if [ "${ase}" == "Enabled" ]; then
- fn_port "Query" queryport udp
- fi
- fn_port "HTTP" httpport tcp
- } | column -s $'\t' -t
-}
-
-fn_info_message_nec() {
- {
- fn_port "header"
- fn_port "Game" port udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_onset() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- fn_port "HTTP" httpport tcp
- } | column -s $'\t' -t
-}
-
-fn_info_message_pc() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- fn_port "Steam" steamport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_pc2() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- fn_port "Steam" steamport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_pstbs() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- fn_port "RCON" rconport tcp
- } | column -s $'\t' -t
-}
-
-fn_info_message_pvr() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Game" port tcp
- fn_port "Game+400" port401 udp
- fn_port "Query" queryport tcp
- } | column -s $'\t' -t
-}
-
-fn_info_message_pz() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_qw() {
- {
- fn_port "header"
- fn_port "Game" port udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_q2() {
- {
- fn_port "header"
- fn_port "Game" port udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_q3() {
- {
- fn_port "header"
- fn_port "Game" port udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_ql() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- fn_port "RCON" rconport tcp
- fn_port "Stats" statsport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_ro() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- fn_port "Web Admin" webadminport tcp
- fn_port "LAN" lanport udp
- fn_port "Steam" steamport udp
- fn_port "Steam Master" steammasterport udp
- } | column -s $'\t' -t
- echo -e ""
- echo -e "${lightgreen}${servername} Web Admin${default}"
- fn_messages_separator
- {
- echo -e "${lightblue}Web Admin enabled:\t${default}${webadminenabled}"
- echo -e "${lightblue}Web Admin url:\t${default}http://${webadminip}:${webadminport}"
- echo -e "${lightblue}Web Admin username:\t${default}${webadminuser}"
- echo -e "${lightblue}Web Admin password:\t${default}${webadminpass}"
- } | column -s $'\t' -t
-}
-
-fn_info_message_rtcw() {
- {
- fn_port "header"
- fn_port "Game" port udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_rust() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- fn_port "RCON" rconport tcp
- fn_port "App" appport tcp
- } | column -s $'\t' -t
-}
-
-fn_info_message_rw() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Game+1" port2 udp
- fn_port "Game+2" port3 udp
- fn_port "Game+3" port4 udp
- fn_port "Game+1" port2 tcp
- fn_port "Game+2" port3 tcp
- fn_port "Game+3" port4 tcp
- fn_port "Query" queryport tcp
- fn_port "Query HTTP" httpqueryport tcp
- fn_port "RCON" rconport tcp
- } | column -s $'\t' -t
-}
-
-fn_info_message_samp() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "RCON" rconport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_sb() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport tcp
- fn_port "RCON" rconport tcp
- } | column -s $'\t' -t
-}
-
-fn_info_message_sbots() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_scpsl() {
- {
- fn_port "header"
- fn_port "Game" port tcp
- } | column -s $'\t' -t
-}
-
-fn_info_message_sdtd() {
- fn_info_message_password_strip
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Game+2" port3 udp
- fn_port "Query" queryport tcp
- fn_port "Web Admin" webadminport tcp
- fn_port "Telnet" telnetport tcp
- } | column -s $'\t' -t
- echo -e ""
- echo -e "${lightgreen}${gamename} Web Admin${default}"
- fn_messages_separator
- {
- echo -e "${lightblue}Web Admin enabled:\t${default}${webadminenabled}"
- echo -e "${lightblue}Web Admin url:\t${default}http://${webadminip}:${webadminport}/index.html"
- echo -e "${lightblue}Web Admin username:\t${default}${webadminuser}"
- echo -e "${lightblue}Web Admin password:\t${default}${webadminpass}"
- } | column -s $'\t' -t
- echo -e ""
- echo -e "${lightgreen}${gamename} Telnet${default}"
- fn_messages_separator
- {
- echo -e "${lightblue}Telnet enabled:\t${default}${telnetenabled}"
- echo -e "${lightblue}Telnet address:\t${default}${telnetip} ${telnetport}"
- echo -e "${lightblue}Telnet password:\t${default}${telnetpass}"
- } | column -s $'\t' -t
-}
-
-fn_info_message_sf() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- fn_port "Beacon" beaconport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_sof2() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_sol() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- fn_port "Files" filesport tcp
- } | column -s $'\t' -t
-}
-
-fn_info_message_prism3d() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_source() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport tcp
- fn_port "RCON" rconport tcp
- fn_port "SourceTV" sourcetvport udp
- # Will not show if unaviable
- if [ "${steamport}" == "0" ] || [ -v "${steamport}" ]; then
- fn_port "Steam" steamport udp
- fi
- fn_port "Client" clientport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_spark() {
- fn_info_message_password_strip
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- fn_port "Web Admin" webadminport tcp
- } | column -s $'\t' -t
- echo -e ""
- echo -e "${lightgreen}${gamename} Web Admin${default}"
- fn_messages_separator
- {
- echo -e "${lightblue}Web Admin url:\t${default}http://${webadminip}:${webadminport}/index.html"
- echo -e "${lightblue}Web Admin username:\t${default}${webadminuser}"
- echo -e "${lightblue}Web Admin password:\t${default}${webadminpass}"
- } | column -s $'\t' -t
-}
-
-fn_info_message_squad() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- fn_port "RCON" rconport tcp
- } | column -s $'\t' -t
-}
-
-fn_info_message_st() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- fn_port "Web Admin" webadminport tcp
- } | column -s $'\t' -t
- echo -e ""
- echo -e "${lightgreen}${gamename} Web Admin${default}"
- fn_messages_separator
- {
- echo -e "${lightblue}Web Admin url:\t${default}http://${webadminip}:${webadminport}"
- } | column -s $'\t' -t
-}
-
-fn_info_message_ti() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_ts3() {
- {
- fn_port "header"
- fn_port "Voice" port udp
- fn_port "Query" queryport tcp
- fn_port "Query (SSH)" querysshport tcp
- fn_port "Query (http)" queryhttpport tcp
- fn_port "Query (https)" queryhttpsport tcp
- fn_port "File Transfer" fileport tcp
- fn_port "Telnet" telnetport tcp
- } | column -s $'\t' -t
-}
-
-fn_info_message_tw() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_terraria() {
- {
- fn_port "header"
- fn_port "Game" port tcp
- fn_port "Query" queryport tcp
- } | column -s $'\t' -t
-}
-
-fn_info_message_tu() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- fn_port "Steam" steamport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_unreal() {
- fn_info_message_password_strip
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- fn_port "LAN Beacon" beaconport udp
- fn_port "Web Admin" webadminport tcp
- } | column -s $'\t' -t
- echo -e ""
- echo -e "${lightgreen}${servername} Web Admin${default}"
- fn_messages_separator
- {
- echo -e "${lightblue}Web Admin enabled:\t${default}${webadminenabled}"
- echo -e "${lightblue}Web Admin url:\t${default}http://${webadminip}:${webadminport}"
- echo -e "${lightblue}Web Admin username:\t${default}${webadminuser}"
- echo -e "${lightblue}Web Admin password:\t${default}${webadminpass}"
- } | column -s $'\t' -t
-}
-
-fn_info_message_ut2k4() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- fn_port "Query (GameSpy)" queryportgs udp
- fn_port "Web Admin" webadminport tcp
- fn_port "LAN" lanport udp
- } | column -s $'\t' -t
- echo -e ""
- echo -e "${lightgreen}${servername} Web Admin${default}"
- fn_messages_separator
- {
- echo -e "${lightblue}Web Admin enabled:\t${default}${webadminenabled}"
- echo -e "${lightblue}Web Admin url:\t${default}http://${webadminip}:${webadminport}"
- echo -e "${lightblue}Web Admin username:\t${default}${webadminuser}"
- echo -e "${lightblue}Web Admin password:\t${default}${webadminpass}"
- } | column -s $'\t' -t
-}
-
-fn_info_message_unreal() {
- fn_info_message_password_strip
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- fn_port "LAN Beacon" beaconport udp
- fn_port "Web Admin" webadminport tcp
- } | column -s $'\t' -t
- echo -e ""
- echo -e "${lightgreen}${servername} Web Admin${default}"
- fn_messages_separator
- {
- echo -e "${lightblue}Web Admin enabled:\t${default}${webadminenabled}"
- echo -e "${lightblue}Web Admin url:\t${default}http://${webadminip}:${webadminport}"
- echo -e "${lightblue}Web Admin username:\t${default}${webadminuser}"
- echo -e "${lightblue}Web Admin password:\t${default}${webadminpass}"
- } | column -s $'\t' -t
-}
-
-fn_info_message_unt() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- fn_port "Steam" steamport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_ut() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_ut3() {
- fn_info_message_password_strip
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- fn_port "Web Admin" webadminport tcp
- } | column -s $'\t' -t
- echo -e ""
- echo -e "${lightgreen}${servername} Web Admin${default}"
- fn_messages_separator
- {
- echo -e "${lightblue}Web Admin enabled:\t${default}${webadminenabled}"
- echo -e "${lightblue}Web Admin url:\t${default}http://${webadminip}:${webadminport}"
- echo -e "${lightblue}Web Admin username:\t${default}${webadminuser}"
- echo -e "${lightblue}Web Admin password:\t${default}${webadminpass}"
- } | column -s $'\t' -t
-}
-
-fn_info_message_vh() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_vints() {
- {
- fn_port "header"
- fn_port "Game" port tcp
- } | column -s $'\t' -t
-}
-
-fn_info_message_vpmc() {
- {
- fn_port "header"
- fn_port "Game" port tcp
- } | column -s $'\t' -t
-}
-
-fn_info_message_wet() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_wf() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "HTTP" httpport tcp
- } | column -s $'\t' -t
-}
-
-fn_info_message_wurm() {
- {
- fn_port "header"
- fn_port "Game" port tcp
- fn_port "Query" queryport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_stn() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Query" queryport udp
- } | column -s $'\t' -t
-}
-
-fn_info_message_select_engine() {
- # Display details depending on game or engine.
- if [ "${shortname}" == "ac" ]; then
- fn_info_message_ac
- elif [ "${shortname}" == "ark" ]; then
- fn_info_message_ark
- elif [ "${shortname}" == "arma3" ]; then
- fn_info_message_arma3
- elif [ "${shortname}" == "armar" ]; then
- fn_info_message_armar
- elif [ "${shortname}" == "av" ]; then
- fn_info_message_av
- elif [ "${shortname}" == "bf1942" ]; then
- fn_info_message_bf1942
- elif [ "${shortname}" == "bfv" ]; then
- fn_info_message_bfv
- elif [ "${shortname}" == "bo" ]; then
- fn_info_message_bo
- elif [ "${shortname}" == "bt" ]; then
- fn_info_message_bt
- elif [ "${shortname}" == "btl" ]; then
- fn_info_message_btl
- elif [ "${shortname}" == "cd" ]; then
- fn_info_messages_cd
- elif [ "${shortname}" == "ck" ]; then
- fn_info_messages_ck
- elif [ "${shortname}" == "csgo" ]; then
- fn_info_message_csgo
- elif [ "${shortname}" == "cmw" ]; then
- fn_info_message_cmw
- elif [ "${shortname}" == "cod" ]; then
- fn_info_message_cod
- elif [ "${shortname}" == "coduo" ]; then
- fn_info_message_coduo
- elif [ "${shortname}" == "cod2" ]; then
- fn_info_message_cod2
- elif [ "${shortname}" == "cod4" ]; then
- fn_info_message_cod4
- elif [ "${shortname}" == "codwaw" ]; then
- fn_info_message_codwaw
- elif [ "${shortname}" == "col" ]; then
- fn_info_message_col
- elif [ "${shortname}" == "dayz" ]; then
- fn_info_message_dayz
- elif [ "${shortname}" == "dodr" ]; then
- fn_info_message_dodr
- elif [ "${shortname}" == "dst" ]; then
- fn_info_message_dst
- elif [ "${shortname}" == "eco" ]; then
- fn_info_message_eco
- elif [ "${shortname}" == "etl" ]; then
- fn_info_message_etl
- elif [ "${shortname}" == "fctr" ]; then
- fn_info_message_fctr
- elif [ "${shortname}" == "hcu" ]; then
- fn_info_message_hcu
- elif [ "${shortname}" == "hw" ]; then
- fn_info_message_hw
- elif [ "${shortname}" == "ins" ]; then
- fn_info_message_ins
- elif [ "${shortname}" == "inss" ]; then
- fn_info_message_inss
- elif [ "${shortname}" == "jc2" ]; then
- fn_info_message_jc2
- elif [ "${shortname}" == "jc3" ]; then
- fn_info_message_jc3
- elif [ "${shortname}" == "jk2" ]; then
- fn_info_message_jk2
- elif [ "${shortname}" == "kf" ]; then
- fn_info_message_kf
- elif [ "${shortname}" == "kf2" ]; then
- fn_info_message_kf2
- elif [ "${shortname}" == "lo" ]; then
- fn_info_message_lo
- elif [ "${shortname}" == "mc" ] || [ "${shortname}" == "pmc" ] || [ "${shortname}" == "wmc" ]; then
- fn_info_message_mc
- elif [ "${shortname}" == "mcb" ]; then
- fn_info_message_mcb
- elif [ "${shortname}" == "mh" ]; then
- fn_info_message_mh
- elif [ "${shortname}" == "mohaa" ]; then
- fn_info_message_mohaa
- elif [ "${shortname}" == "mom" ]; then
- fn_info_message_mom
- elif [ "${shortname}" == "mta" ]; then
- fn_info_message_mta
- elif [ "${shortname}" == "nec" ]; then
- fn_info_message_nec
- elif [ "${shortname}" == "onset" ]; then
- fn_info_message_onset
- elif [ "${shortname}" == "pc" ]; then
- fn_info_message_pc
- elif [ "${shortname}" == "pc2" ]; then
- fn_info_message_pc2
- elif [ "${shortname}" == "pstbs" ]; then
- fn_info_message_pstbs
- elif [ "${shortname}" == "pvr" ]; then
- fn_info_message_pvr
- elif [ "${shortname}" == "pz" ]; then
- fn_info_message_pz
- elif [ "${shortname}" == "q2" ]; then
- fn_info_message_q2
- elif [ "${shortname}" == "q3" ]; then
- fn_info_message_q3
- elif [ "${shortname}" == "ql" ]; then
- fn_info_message_ql
- elif [ "${shortname}" == "qw" ]; then
- fn_info_message_qw
- elif [ "${shortname}" == "ro" ]; then
- fn_info_message_ro
- elif [ "${shortname}" == "rtcw" ]; then
- fn_info_message_rtcw
- elif [ "${shortname}" == "samp" ]; then
- fn_info_message_samp
- elif [ "${shortname}" == "sb" ]; then
- fn_info_message_sb
- elif [ "${shortname}" == "sbots" ]; then
- fn_info_message_sbots
- elif [ "${shortname}" == "scpsl" ] || [ "${shortname}" == "scpslsm" ]; then
- fn_info_message_scpsl
- elif [ "${shortname}" == "sdtd" ]; then
- fn_info_message_sdtd
- elif [ "${shortname}" == "sf" ]; then
- fn_info_message_sf
- elif [ "${shortname}" == "sof2" ]; then
- fn_info_message_sof2
- elif [ "${shortname}" == "sol" ]; then
- fn_info_message_sol
- elif [ "${shortname}" == "squad" ]; then
- fn_info_message_squad
- elif [ "${shortname}" == "st" ]; then
- fn_info_message_st
- elif [ "${shortname}" == "stn" ]; then
- fn_info_message_stn
- elif [ "${shortname}" == "terraria" ]; then
- fn_info_message_terraria
- elif [ "${shortname}" == "ti" ]; then
- fn_info_message_ti
- elif [ "${shortname}" == "ts3" ]; then
- fn_info_message_ts3
- elif [ "${shortname}" == "tu" ]; then
- fn_info_message_tu
- elif [ "${shortname}" == "tw" ]; then
- fn_info_message_tw
- elif [ "${shortname}" == "unt" ]; then
- fn_info_message_unt
- elif [ "${shortname}" == "vh" ]; then
- fn_info_message_vh
- elif [ "${shortname}" == "vints" ]; then
- fn_info_message_vints
- elif [ "${shortname}" == "rust" ]; then
- fn_info_message_rust
- elif [ "${shortname}" == "rw" ]; then
- fn_info_message_rw
- elif [ "${shortname}" == "ut" ]; then
- fn_info_message_ut
- elif [ "${shortname}" == "ut2k4" ]; then
- fn_info_message_ut2k4
- elif [ "${shortname}" == "ut3" ]; then
- fn_info_message_ut3
- elif [ "${shortname}" == "vpmc" ]; then
- fn_info_message_vpmc
- elif [ "${shortname}" == "wet" ]; then
- fn_info_message_wet
- elif [ "${shortname}" == "wf" ]; then
- fn_info_message_wf
- elif [ "${shortname}" == "wurm" ]; then
- fn_info_message_wurm
- elif [ "${engine}" == "goldsrc" ]; then
- fn_info_message_goldsrc
- elif [ "${engine}" == "prism3d" ]; then
- fn_info_message_prism3d
- elif [ "${engine}" == "source" ]; then
- fn_info_message_source
- elif [ "${engine}" == "spark" ]; then
- fn_info_message_spark
- elif [ "${engine}" == "unreal" ]; then
- fn_info_message_unreal
- else
- fn_print_error_nl "Unable to detect game server."
- fi
-}
diff --git a/lgsm/functions/info_stats.sh b/lgsm/functions/info_stats.sh
deleted file mode 100644
index 0589770f69..0000000000
--- a/lgsm/functions/info_stats.sh
+++ /dev/null
@@ -1,173 +0,0 @@
-#!/bin/bash
-# LinuxGSM info_stats.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Collect optional Stats sent to LinuxGSM project.
-# Uses Google analytics.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-info_distro.sh
-
-# remove uuid that was used in v20.2.0 and below
-if [ -f "${datadir}/uuid.txt" ]; then
- rm -f "${datadir:?}/uuid.txt"
-fi
-
-# generate uuid's
-# this consists of a standard uuid and a docker style name
-# to allow human readable uuid's.
-# e.g angry_proskuriakova_38a9ef76-4ae3-46a6-a895-7af474831eba
-
-if [ ! -f "${datadir}/uuid-${selfname}.txt" ] || [ ! -f "${datadir}/uuid-install.txt" ]; then
- # download dictionary words
- if [ ! -f "${datadir}/name-left.csv" ]; then
- fn_fetch_file_github "lgsm/data" "name-left.csv" "${datadir}" "nochmodx" "norun" "forcedl" "nohash"
- fi
- if [ ! -f "${datadir}/name-right.csv" ]; then
- fn_fetch_file_github "lgsm/data" "name-right.csv" "${datadir}" "nochmodx" "norun" "forcedl" "nohash"
- fi
-
- # generate instance uuid
- if [ -n "$(command -v uuidgen 2> /dev/null)" ]; then
- uuid="$(uuidgen)"
- else
- uuid="$(cat /proc/sys/kernel/random/uuid)"
- fi
-
- nameleft="$(shuf -n 1 "${datadir}/name-left.csv")"
- nameright="$(shuf -n 1 "${datadir}/name-right.csv")"
- echo "instance_${nameleft}_${nameright}_${uuid}" > "${datadir}/uuid-${selfname}.txt"
- # generate install uuid if missing
- if [ ! -f "${datadir}/uuid-install.txt" ]; then
- echo "${nameleft}_${nameright}_${uuid}" > "${datadir}/uuid-install.txt"
- fi
-fi
-
-uuidinstance=$(cat "${datadir}/uuid-${selfname}.txt")
-uuidinstall=$(cat "${datadir}/uuid-install.txt")
-# machine-id is a unique id set on OS install
-uuidhardware=$(cat "/etc/machine-id")
-
-# results are rounded up to reduce number of different results in analytics.
-# nearest 100Mhz.
-cpuusedmhzroundup="$(((cpuusedmhz + 99) / 100 * 100))"
-# nearest 100MB
-memusedroundup="$(((memused + 99) / 100 * 100))"
-
-# Spliting the metrics in to 3 propertys allows more accurate metrics on numbers of invidual instances, installs and hardware.
-# Instance Property - UA-165287622-1
-# Install Property - UA-165287622-2
-# Hardware Property - UA-165287622-3
-
-## Distro.
-curl https://www.google-analytics.com/collect -d "tid=UA-165287622-1" -d "aip=1" -d "cid=${uuidinstance}" -d "t=event" -d "ec=distro" -d "ea=${distroname}" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
-curl https://www.google-analytics.com/collect -d "tid=UA-165287622-2" -d "aip=1" -d "cid=${uuidinstall}" -d "t=event" -d "ec=distro" -d "ea=${distroname}" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
-curl https://www.google-analytics.com/collect -d "tid=UA-165287622-3" -d "aip=1" -d "cid=${uuidhardware}" -d "t=event" -d "ec=distro" -d "ea=${distroname}" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
-
-## Game Server Name.
-curl https://www.google-analytics.com/collect -d "tid=UA-165287622-1" -d "aip=1" -d "cid=${uuidinstance}" -d "t=event" -d "ec=game" -d "ea=${gamename}" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
-curl https://www.google-analytics.com/collect -d "tid=UA-165287622-2" -d "aip=1" -d "cid=${uuidinstall}" -d "t=event" -d "ec=game" -d "ea=${gamename}" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
-curl https://www.google-analytics.com/collect -d "tid=UA-165287622-3" -d "aip=1" -d "cid=${uuidhardware}" -d "t=event" -d "ec=game" -d "ea=${gamename}" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
-
-## LinuxGSM Version.
-curl https://www.google-analytics.com/collect -d "tid=UA-165287622-1" -d "aip=1" -d "cid=${uuidinstance}" -d "t=event" -d "ec=version" -d "ea=${version}" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
-curl https://www.google-analytics.com/collect -d "tid=UA-165287622-2" -d "aip=1" -d "cid=${uuidinstall}" -d "t=event" -d "ec=version" -d "ea=${version}" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
-curl https://www.google-analytics.com/collect -d "tid=UA-165287622-3" -d "aip=1" -d "cid=${uuidhardware}" -d "t=event" -d "ec=version" -d "ea=${version}" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
-
-## CPU usage of a game server.
-if [ -n "${cpuusedmhzroundup}" ]; then
- curl https://www.google-analytics.com/collect -d "tid=UA-165287622-1" -d "aip=1" -d "cid=${uuidinstance}" -d "t=event" -d "ec=cpuused" -d "ea=${cpuusedmhzroundup}MHz" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
- curl https://www.google-analytics.com/collect -d "tid=UA-165287622-2" -d "aip=1" -d "cid=${uuidinstall}" -d "t=event" -d "ec=cpuused" -d "ea=${cpuusedmhzroundup}MHz" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
- curl https://www.google-analytics.com/collect -d "tid=UA-165287622-3" -d "aip=1" -d "cid=${uuidhardware}" -d "t=event" -d "ec=cpuused" -d "ea=${cpuusedmhzroundup}MHz" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
-fi
-## Ram usage of a game server.
-if [ -n "${memusedroundup}" ]; then
- curl https://www.google-analytics.com/collect -d "tid=UA-165287622-1" -d "aip=1" -d "cid=${uuidinstance}" -d "t=event" -d "ec=ramused" -d "ea=${memusedroundup}MB" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
- curl https://www.google-analytics.com/collect -d "tid=UA-165287622-2" -d "aip=1" -d "cid=${uuidinstall}" -d "t=event" -d "ec=ramused" -d "ea=${memusedroundup}MB" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
- curl https://www.google-analytics.com/collect -d "tid=UA-165287622-3" -d "aip=1" -d "cid=${uuidhardware}" -d "t=event" -d "ec=ramused" -d "ea=${memusedroundup}MB" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
-fi
-## Disk usage of a game server.
-if [ -n "${serverfilesdu}" ]; then
- curl https://www.google-analytics.com/collect -d "tid=UA-165287622-1" -d "aip=1" -d "cid=${uuidinstance}" -d "t=event" -d "ec=diskused" -d "ea=${serverfilesdu}" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
- curl https://www.google-analytics.com/collect -d "tid=UA-165287622-2" -d "aip=1" -d "cid=${uuidinstall}" -d "t=event" -d "ec=diskused" -d "ea=${serverfilesdu}" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
- curl https://www.google-analytics.com/collect -d "tid=UA-165287622-3" -d "aip=1" -d "cid=${uuidhardware}" -d "t=event" -d "ec=diskused" -d "ea=${serverfilesdu}" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
-fi
-
-## CPU Model.
-if [ -n "${cpumodel}" ]; then
- curl https://www.google-analytics.com/collect -d "tid=UA-165287622-1" -d "aip=1" -d "cid=${uuidinstance}" -d "t=event" -d "ec=servercpu" -d "ea=${cpumodel} ${cpucores} cores" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
- curl https://www.google-analytics.com/collect -d "tid=UA-165287622-2" -d "aip=1" -d "cid=${uuidinstall}" -d "t=event" -d "ec=servercpu" -d "ea=${cpumodel} ${cpucores} cores" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
- curl https://www.google-analytics.com/collect -d "tid=UA-165287622-3" -d "aip=1" -d "cid=${uuidhardware}" -d "t=event" -d "ec=servercpu" -d "ea=${cpumodel} ${cpucores} cores" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
-
-fi
-
-## CPU Frequency.
-if [ -n "${cpufreqency}" ]; then
- curl https://www.google-analytics.com/collect -d "tid=UA-165287622-1" -d "aip=1" -d "cid=${uuidinstance}" -d "t=event" -d "ec=servercpufreq" -d "ea=${cpufreqency} x${cpucores}" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
- curl https://www.google-analytics.com/collect -d "tid=UA-165287622-2" -d "aip=1" -d "cid=${uuidinstall}" -d "t=event" -d "ec=servercpufreq" -d "ea=${cpufreqency} x${cpucores}" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
- curl https://www.google-analytics.com/collect -d "tid=UA-165287622-3" -d "aip=1" -d "cid=${uuidhardware}" -d "t=event" -d "ec=servercpufreq" -d "ea=${cpufreqency} x${cpucores}" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
-fi
-
-## Server RAM.
-if [ -n "${physmemtotal}" ]; then
- curl https://www.google-analytics.com/collect -d "tid=UA-165287622-1" -d "aip=1" -d "cid=${uuidinstance}" -d "t=event" -d "ec=serverram" -d "ea=${physmemtotal}" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
- curl https://www.google-analytics.com/collect -d "tid=UA-165287622-2" -d "aip=1" -d "cid=${uuidinstall}" -d "t=event" -d "ec=serverram" -d "ea=${physmemtotal}" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
- curl https://www.google-analytics.com/collect -d "tid=UA-165287622-3" -d "aip=1" -d "cid=${uuidhardware}" -d "t=event" -d "ec=serverram" -d "ea=${physmemtotal}" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
-fi
-
-## Server Disk.
-if [ -n "${totalspace}" ]; then
- curl https://www.google-analytics.com/collect -d "tid=UA-165287622-1" -d "aip=1" -d "cid=${uuidinstance}" -d "t=event" -d "ec=serverdisk" -d "ea=${totalspace}" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
- curl https://www.google-analytics.com/collect -d "tid=UA-165287622-2" -d "aip=1" -d "cid=${uuidinstall}" -d "t=event" -d "ec=serverdisk" -d "ea=${totalspace}" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
- curl https://www.google-analytics.com/collect -d "tid=UA-165287622-3" -d "aip=1" -d "cid=${uuidhardware}" -d "t=event" -d "ec=serverdisk" -d "ea=${totalspace}" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
-fi
-
-## Alert Stats.
-if [ "${discordalert}" == "on" ]; then
- curl https://www.google-analytics.com/collect -d "tid=UA-165287622-1" -d "aip=1" -d "cid=${uuidinstance}" -d "t=event" -d "ec=alert" -d "ea=Discord" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
-fi
-if [ "${emailalert}" == "on" ]; then
- curl https://www.google-analytics.com/collect -d "tid=UA-165287622-1" -d "aip=1" -d "cid=${uuidinstance}" -d "t=event" -d "ec=alert" -d "ea=Email" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
-fi
-if [ "${iftttalert}" == "on" ]; then
- curl https://www.google-analytics.com/collect -d "tid=UA-165287622-1" -d "aip=1" -d "cid=${uuidinstance}" -d "t=event" -d "ec=alert" -d "ea=IFTTT" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
-fi
-if [ "${mailgunalert}" == "on" ]; then
- curl https://www.google-analytics.com/collect -d "tid=UA-165287622-1" -d "aip=1" -d "cid=${uuidinstance}" -d "t=event" -d "ec=alert" -d "ea=Mailgun" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
-fi
-if [ "${pushbulletalert}" == "on" ]; then
- curl https://www.google-analytics.com/collect -d "tid=UA-165287622-1" -d "aip=1" -d "cid=${uuidinstance}" -d "t=event" -d "ec=alert" -d "ea=Pushbullet" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
-fi
-if [ "${pushoveralert}" == "on" ]; then
- curl https://www.google-analytics.com/collect -d "tid=UA-165287622-1" -d "aip=1" -d "cid=${uuidinstance}" -d "t=event" -d "ec=alert" -d "ea=Pushover" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
-fi
-if [ "${rocketchatalert}" == "on" ]; then
- curl https://www.google-analytics.com/collect -d "tid=UA-165287622-1" -d "aip=1" -d "cid=${uuidinstance}" -d "t=event" -d "ec=alert" -d "ea=Rocket Chat" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
-fi
-if [ "${slackalert}" == "on" ]; then
- curl https://www.google-analytics.com/collect -d "tid=UA-165287622-1" -d "aip=1" -d "cid=${uuidinstance}" -d "t=event" -d "ec=alert" -d "ea=Slack" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
-fi
-if [ "${telegramalert}" == "on" ]; then
- curl https://www.google-analytics.com/collect -d "tid=UA-165287622-1" -d "aip=1" -d "cid=${uuidinstance}" -d "t=event" -d "ec=alert" -d "ea=Telegram" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
-fi
-
-## Summary Stats
-curl https://www.google-analytics.com/collect -d "tid=UA-165287622-1" -d "aip=1" -d "cid=${uuidinstance}" -d "t=event" -d "ec=summary" -d "ea=GAME: ${gamename} | DISTRO: ${distroname} | CPU MODEL: ${cpumodel} ${cpucores} cores | RAM: ${physmemtotal} | DISK: ${totalspace}" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
-curl https://www.google-analytics.com/collect -d "tid=UA-165287622-2" -d "aip=1" -d "cid=${uuidinstall}" -d "t=event" -d "ec=summary" -d "ea=GAME: ${gamename} | DISTRO: ${distroname} | CPU MODEL: ${cpumodel} ${cpucores} cores | RAM: ${physmemtotal} | DISK: ${totalspace}" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
-curl https://www.google-analytics.com/collect -d "tid=UA-165287622-3" -d "aip=1" -d "cid=${uuidhardware}" -d "t=event" -d "ec=summary" -d "ea=GAME: ${gamename} | DISTRO: ${distroname} | CPU MODEL: ${cpumodel} ${cpucores} cores | RAM: ${physmemtotal} | DISK: ${totalspace}" -d "el=${gamename}" -d "v=1" > /dev/null 2>&1
-
-fn_script_log_info "Send LinuxGSM stats"
-fn_script_log_info "* uuid-${selfname}: ${uuidinstance}"
-fn_script_log_info "* uuid-install: ${uuidinstall}"
-fn_script_log_info "* uuid-hardware: ${uuidhardware}"
-fn_script_log_info "* Game Name: ${gamename}"
-fn_script_log_info "* Distro Name: ${distroname}"
-fn_script_log_info "* Game Server CPU Used: ${cpuusedmhzroundup}MHz"
-fn_script_log_info "* Game Server RAM Used: ${memusedroundup}MB"
-fn_script_log_info "* Game Server Disk Used: ${serverfilesdu}"
-fn_script_log_info "* Server CPU Model: ${cpumodel}"
-fn_script_log_info "* Server CPU Frequency: ${cpufreqency}"
-fn_script_log_info "* Server RAM: ${physmemtotal}"
-fn_script_log_info "* Server Disk: ${totalspace}"
diff --git a/lgsm/functions/install_complete.sh b/lgsm/functions/install_complete.sh
deleted file mode 100644
index ad258b2245..0000000000
--- a/lgsm/functions/install_complete.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/bash
-# LinuxGSM install_complete.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Prints installation completion message and hints.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-echo -e ""
-echo -e "================================="
-echo -e "Install Complete!"
-fn_script_log_info "Install Complete!"
-echo -e ""
-echo -e "To start server type:"
-echo -e "./${selfname} start"
-echo -e ""
-core_exit.sh
diff --git a/lgsm/functions/install_config.sh b/lgsm/functions/install_config.sh
deleted file mode 100644
index 35d7df7c6b..0000000000
--- a/lgsm/functions/install_config.sh
+++ /dev/null
@@ -1,937 +0,0 @@
-#!/bin/bash
-# LinuxGSM install_config.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Creates default server configs.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-# Checks if server cfg dir exists, creates it if it doesn't.
-fn_check_cfgdir() {
- if [ ! -d "${servercfgdir}" ]; then
- echo -e "creating ${servercfgdir} config directory."
- fn_script_log_info "creating ${servercfgdir} config directory."
- mkdir -pv "${servercfgdir}"
- fi
-}
-
-# 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 "default configs from https://github.com/GameServerManagers/Game-Server-Configs"
- fn_sleep_time
- mkdir -p "${lgsmdir}/config-default/config-game"
- githuburl="https://raw.githubusercontent.com/GameServerManagers/Game-Server-Configs/master"
- for config in "${array_configs[@]}"; do
- fn_fetch_file "${githuburl}/${gamedirname}/${config}" "${remote_fileurl_backup}" "GitHub" "Bitbucket" "${lgsmdir}/config-default/config-game" "${config}" "nochmodx" "norun" "forcedl" "nohash"
- done
-}
-
-# Copys default configs from Game-Server-Configs repo to server config location.
-fn_default_config_remote() {
- for config in "${array_configs[@]}"; do
- # every config is copied
- echo -e "copying ${config} config file."
- fn_script_log_info "copying ${servercfg} config file."
- if [ "${config}" == "${servercfgdefault}" ]; then
- mkdir -p "${servercfgdir}"
- cp -nv "${lgsmdir}/config-default/config-game/${config}" "${servercfgfullpath}"
- elif [ "${shortname}" == "arma3" ] && [ "${config}" == "${networkcfgdefault}" ]; then
- mkdir -p "${servercfgdir}"
- cp -nv "${lgsmdir}/config-default/config-game/${config}" "${networkcfgfullpath}"
- elif [ "${shortname}" == "dst" ] && [ "${config}" == "${clustercfgdefault}" ]; then
- cp -nv "${lgsmdir}/config-default/config-game/${clustercfgdefault}" "${clustercfgfullpath}"
- else
- mkdir -p "${servercfgdir}"
- cp -nv "${lgsmdir}/config-default/config-game/${config}" "${servercfgdir}/${config}"
- fi
- done
- fn_sleep_time
-}
-
-# Copys local default config to server config location.
-fn_default_config_local() {
- echo -e "copying ${servercfgdefault} config file."
- cp -nv "${servercfgdir}/${servercfgdefault}" "${servercfgfullpath}"
- fn_sleep_time
-}
-
-# Changes some variables within the default configs.
-# SERVERNAME to LinuxGSM
-# PASSWORD to random password
-fn_set_config_vars() {
- if [ -f "${servercfgfullpath}" ]; then
- random=$(tr -dc A-Za-z0-9_ < /dev/urandom | head -c 8 | xargs)
- servername="LinuxGSM"
- rconpass="admin${random}"
- echo -e "changing hostname."
- fn_script_log_info "changing hostname."
- fn_sleep_time
- # prevents var from being overwritten with the servername.
- if grep -q "SERVERNAME=SERVERNAME" "${lgsmdir}/config-default/config-game/${config}" 2> /dev/null; then
- sed -i "s/SERVERNAME=SERVERNAME/SERVERNAME=${servername}/g" "${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}"
- else
- sed -i "s/SERVERNAME/${servername}/g" "${servercfgfullpath}"
- fi
- echo -e "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
- else
- fn_script_log_warn "Config file not found, cannot alter it."
- echo -e "Config file not found, cannot alter it."
- fn_sleep_time
- fi
-}
-
-# 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
- 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}"
- fi
-
- 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"
- fi
- fn_sleep_time
- echo -e ""
-}
-
-# Lists local config file locations
-fn_list_config_locations() {
- echo -e ""
- echo -e "${lightyellow}Config File Locations${default}"
- echo -e "================================="
- if [ -n "${servercfgfullpath}" ]; then
- if [ -f "${servercfgfullpath}" ]; then
- echo -e "Game Server Config File: ${servercfgfullpath}"
- elif [ -d "${servercfgfullpath}" ]; then
- echo -e "Game Server Config Dir: ${servercfgfullpath}"
- else
- echo -e "Config file: ${red}${servercfgfullpath} (${red}FILE MISSING${default})"
- fi
- fi
- echo -e "LinuxGSM Config: ${lgsmdir}/config-lgsm/${gameservername}"
- echo -e "Documentation: https://docs.linuxgsm.com/configuration/game-server-config"
-}
-
-if [ "${shortname}" == "sdtd" ]; then
- gamedirname="7DaysToDie"
- fn_default_config_local
- fn_list_config_locations
-elif [ "${shortname}" == "ac" ]; then
- gamedirname="AssettoCorsa"
- array_configs+=(server_cfg.ini)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "ahl" ]; then
- gamedirname="ActionHalfLife"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "ahl2" ]; then
- gamedirname="ActionSource"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "ark" ]; then
- gamedirname="ARKSurvivalEvolved"
- fn_check_cfgdir
- array_configs+=(GameUserSettings.ini)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "arma3" ]; then
- gamedirname="Arma3"
- fn_check_cfgdir
- array_configs+=(server.cfg network.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "armar" ]; then
- gamedirname="ArmaReforger"
- fn_check_cfgdir
- array_configs+=(server.json)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "ats" ]; then
- gamedirname="AmericanTruckSimulator"
- fn_check_cfgdir
- array_configs+=(server_config.sii)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "bo" ]; then
- gamedirname="BallisticOverkill"
- array_configs+=(config.txt)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "bd" ]; then
- gamedirname="BaseDefense"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "bt" ]; then
- gamedirname="Barotrauma"
- fn_check_cfgdir
- array_configs+=(serversettings.xml)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "btl" ]; then
- gamedirname="BattalionLegacy"
- fn_check_cfgdir
- array_configs+=(DefaultGame.ini)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "bf1942" ]; then
- gamedirname="Battlefield1942"
- array_configs+=(serversettings.con)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "bfv" ]; then
- gamedirname="BattlefieldVietnam"
- array_configs+=(serversettings.con)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "bs" ]; then
- gamedirname="BladeSymphony"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "bb" ]; then
- gamedirname="BrainBread"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "bb2" ]; then
- gamedirname="BrainBread2"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "bmdm" ]; then
- gamedirname="BlackMesa"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "cd" ]; then
- gamedirname="CraftingDead"
- array_configs+=(properties.json)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "ck" ]; then
- gamedirname="CoreKeeper"
- array_configs+=(ServerConfig.json)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "cod" ]; then
- gamedirname="CallOfDuty"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "coduo" ]; then
- gamedirname="CallOfDutyUnitedOffensive"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "cod2" ]; then
- gamedirname="CallOfDuty2"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "cod4" ]; then
- gamedirname="CallOfDuty4"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "codwaw" ]; then
- gamedirname="CallOfDutyWorldAtWar"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "cc" ]; then
- gamedirname="CodenameCURE"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "col" ]; then
- gamedirname="ColonySurvival"
- array_configs+=(colserver.json)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "cs" ]; then
- gamedirname="CounterStrike"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "cscz" ]; then
- gamedirname="CounterStrikeConditionZero"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "csgo" ]; then
- gamedirname="CounterStrikeGlobalOffensive"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "css" ]; then
- gamedirname="CounterStrikeSource"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "dayz" ]; then
- gamedirname="DayZ"
- fn_check_cfgdir
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "dod" ]; then
- gamedirname="DayOfDefeat"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "dodr" ]; then
- gamedirname="DayOfDragons"
- array_configs+=(Game.ini)
- fn_fetch_default_config
- fn_default_config_remote
- fn_list_config_locations
-elif [ "${shortname}" == "dods" ]; then
- gamedirname="DayOfDefeatSource"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "doi" ]; then
- gamedirname="DayOfInfamy"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "dmc" ]; then
- gamedirname="DeathmatchClassic"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "dst" ]; then
- gamedirname="DontStarveTogether"
- fn_check_cfgdir
- array_configs+=(cluster.ini server.ini)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_dst_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "dab" ]; then
- gamedirname="DoubleActionBoogaloo"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "dys" ]; then
- gamedirname="Dystopia"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "eco" ]; then
- gamedirname="Eco"
- array_configs+=(Network.eco)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "etl" ]; then
- gamedirname="ETLegacy"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "ets2" ]; then
- gamedirname="EuroTruckSimulator2"
- fn_check_cfgdir
- array_configs+=(server_config.sii)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "fctr" ]; then
- gamedirname="Factorio"
- array_configs+=(server-settings.json)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "fof" ]; then
- gamedirname="FistfulofFrags"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "gmod" ]; then
- gamedirname="GarrysMod"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "hldm" ]; then
- gamedirname="HalfLifeDeathmatch"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "hldms" ]; then
- gamedirname="HalfLifeDeathmatchSource"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "opfor" ]; then
- gamedirname="OpposingForce"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "hl2dm" ]; then
- gamedirname="HalfLife2Deathmatch"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "ins" ]; then
- gamedirname="Insurgency"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "ios" ]; then
- gamedirname="IOSoccer"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "jc2" ]; then
- gamedirname="JustCause2"
- array_configs+=(config.lua)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "jc3" ]; then
- gamedirname="JustCause3"
- array_configs+=(config.json)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "kf" ]; then
- gamedirname="KillingFloor"
- array_configs+=(Default.ini)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "l4d" ]; then
- gamedirname="Left4Dead"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "l4d2" ]; then
- gamedirname="Left4Dead2"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "mc" ] || [ "${shortname}" == "pmc" ]; then
- gamedirname="Minecraft"
- array_configs+=(server.properties)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "mcb" ]; then
- gamedirname="MinecraftBedrock"
- array_configs+=(server.properties)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "mohaa" ]; then
- gamedirname="MedalOfHonorAlliedAssault"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "mh" ]; then
- gamedirname="Mordhau"
- fn_check_cfgdir
- array_configs+=(Game.ini)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "ns" ]; then
- gamedirname="NaturalSelection"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "nmrih" ]; then
- gamedirname="NoMoreRoominHell"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "nd" ]; then
- gamedirname="NuclearDawn"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "mta" ]; then
- gamedirname="MultiTheftAuto"
- fn_check_cfgdir
- array_configs+=(acl.xml mtaserver.conf vehiclecolors.conf)
- fn_fetch_default_config
- fn_default_config_remote
- fn_list_config_locations
-elif [ "${shotname}" == "mom" ]; then
- gamedirname="MemoriesofMars"
- array_configs+=(DedicatedServerConfig.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "pvr" ]; then
- gamedirname="PavlovVR"
- fn_check_cfgdir
- array_configs+=(Game.ini)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
-elif [ "${shortname}" == "pvkii" ]; then
- gamedirname="PiratesVikingandKnightsII"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "pz" ]; then
- gamedirname="ProjectZomboid"
- fn_check_cfgdir
- array_configs+=(server.ini)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "nec" ]; then
- gamedirname="Necesse"
- fn_check_cfgdir
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "pc" ]; then
- gamedirname="ProjectCars"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "pc2" ]; then
- gamedirname="ProjectCars2"
- fn_default_config_local
- fn_list_config_locations
-elif [ "${shortname}" == "q2" ]; then
- gamedirname="Quake2"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "q3" ]; then
- gamedirname="Quake3Arena"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "ql" ]; then
- gamedirname="QuakeLive"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "jk2" ]; then
- gamedirname="JediKnightIIJediOutcast"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
-elif [ "${shortname}" == "qw" ]; then
- gamedirname="QuakeWorld"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "ricochet" ]; then
- gamedirname="Ricochet"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "rtcw" ]; then
- gamedirname="ReturnToCastleWolfenstein"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "rust" ]; then
- gamedirname="Rust"
- fn_check_cfgdir
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_list_config_locations
-elif [ "${shortname}" == "scpsl" ] || [ "${shortname}" == "scpslsm" ]; then
- gamedirname="SCPSecretLaboratory"
- array_configs+=(config_gameplay.txt config_localadmin.txt)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "sf" ]; then
- gamedirname="Satisfactory"
- array_configs+=(GameUserSettings.ini)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "sol" ]; then
- gamedirname="Soldat"
- array_configs+=(soldat.ini)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "sof2" ]; then
- gamedirname="SoldierOfFortune2Gold"
- array_configs+=(server.cfg mapcycle.txt)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "sfc" ]; then
- gamedirname="SourceFortsClassic"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "squad" ]; then
- gamedirname="Squad"
- array_configs+=(Admins.cfg Bans.cfg License.cfg Server.cfg Rcon.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "sb" ]; then
- gamedirname="Starbound"
- array_configs+=(starbound_server.config)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "st" ]; then
- gamedirname="Stationeers"
- array_configs+=(default.ini)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "stn" ]; then
- gamedirname="SurvivetheNights"
- array_configs+=(ServerConfig.txt ServerUsers.txt TpPresets.json UserPermissions.json)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "sven" ]; then
- gamedirname="SvenCoop"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "tf2" ]; then
- gamedirname="TeamFortress2"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "tfc" ]; then
- gamedirname="TeamFortressClassic"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "ti" ]; then
- gamedirname="TheIsle"
- array_configs+=(Game.ini)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "ts" ]; then
- gamedirname="TheSpecialists"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "ts3" ]; then
- gamedirname="TeamSpeak3"
- array_configs+=(ts3server.ini)
- fn_fetch_default_config
- fn_default_config_remote
- fn_list_config_locations
-elif [ "${shortname}" == "tw" ]; then
- gamedirname="Teeworlds"
- array_configs+=(server.cfg ctf.cfg dm.cfg duel.cfg tdm.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "terraria" ]; then
- gamedirname="Terraria"
- array_configs+=(serverconfig.txt)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "tu" ]; then
- gamedirname="TowerUnite"
- fn_check_cfgdir
- array_configs+=(TowerServer.ini)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "ut" ]; then
- gamedirname="UnrealTournament"
- array_configs+=(Game.ini Engine.ini)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "ut2k4" ]; then
- gamedirname="UnrealTournament2004"
- array_configs+=(UT2004.ini)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "ut99" ]; then
- gamedirname="UnrealTournament99"
- array_configs+=(Default.ini)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "unt" ]; then
- gamedirname="Unturned"
- array_configs+=(Config.json)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "vints" ]; then
- gamedirname="VintageStory"
- array_configs+=(serverconfig.json)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "vs" ]; then
- gamedirname="VampireSlayer"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "wet" ]; then
- gamedirname="WolfensteinEnemyTerritory"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "wf" ]; then
- gamedirname="Warfork"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "wmc" ]; then
- gamedirname="Waterfall"
- array_configs+=(config.yml)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
-elif [ "${shortname}" == "wurm" ]; then
- gamedirname="WurmUnlimited"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "zmr" ]; then
- gamedirname="ZombieMasterReborn"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "zps" ]; then
- gamedirname="ZombiePanicSource"
- array_configs+=(server.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-fi
diff --git a/lgsm/functions/install_dst_token.sh b/lgsm/functions/install_dst_token.sh
deleted file mode 100644
index 50bc7ed972..0000000000
--- a/lgsm/functions/install_dst_token.sh
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/bin/bash
-# LinuxGSM install_dst_token.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Configures Don't Starve Together cluster with given token.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-echo -e ""
-echo -e "${lightyellow}Enter ${gamename} Cluster Token${default}"
-echo -e "================================="
-fn_sleep_time
-echo -e "A cluster token is required to run this server!"
-echo -e "Follow the instructions in this link to obtain this key:"
-echo -e "https://linuxgsm.com/dst-auth-token"
-echo -e ""
-if [ -z "${autoinstall}" ]; then
- overwritetoken="true"
- if [ -s "${clustercfgdir}/cluster_token.txt" ]; then
- echo -e "The cluster token is already set. Do you want to overwrite it?"
- fn_script_log_info "Don't Starve Together cluster token is already set"
- if fn_prompt_yn "Continue?" N; then
- overwritetoken="true"
- else
- overwritetoken="false"
- fi
- fi
- if [ "${overwritetoken}" == "true" ]; then
- echo -e "Once you have the cluster token, enter it below"
- echo -n "Cluster Token: "
- read -r token
- mkdir -pv "${clustercfgdir}"
- echo -e "${token}" > "${clustercfgdir}/cluster_token.txt"
- if [ -f "${clustercfgdir}/cluster_token.txt" ]; then
- echo -e "Don't Starve Together cluster token created"
- fn_script_log_info "Don't Starve Together cluster token created"
- fi
- unset overwritetoken
- fi
-else
- echo -e "You can add your cluster token using the following command"
- echo -e "./${selfname} cluster-token"
-fi
-echo -e ""
diff --git a/lgsm/functions/install_eula.sh b/lgsm/functions/install_eula.sh
deleted file mode 100644
index 3e51fac714..0000000000
--- a/lgsm/functions/install_eula.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/bash
-# LinuxGSM install_eula.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Gets user to accept the EULA.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-if [ "${shortname}" == "ts3" ]; then
- eulaurl="https://www.teamspeak.com/en/privacy-and-terms"
-elif [ "${shortname}" == "mc" ] || [ "${shortname}" == "pmc" ]; then
- eulaurl="https://account.mojang.com/documents/minecraft_eula"
-elif [ "${shortname}" == "ut" ]; then
- eulaurl="https://www.epicgames.com/unrealtournament/unreal-tournament-pre-alpha-test-development-build-eula"
-fi
-
-echo -e ""
-echo -e "${lightyellow}Accept ${gamename} EULA${default}"
-echo -e "================================="
-fn_sleep_time
-echo -e "You are required to accept the EULA:"
-echo -e "${eulaurl}"
-echo -e ""
-if [ -z "${autoinstall}" ]; then
- echo -e "By continuing you are indicating your agreement to the EULA."
- echo -e ""
- if ! fn_prompt_yn "Continue?" Y; then
- exitcode=0
- core_exit.sh
- fi
-elif [ "${commandname}" == "START" ]; then
- fn_print_info "By continuing you are indicating your agreement to the EULA."
- sleep 5
-else
- echo -e "By using auto-install you are indicating your agreement to the EULA."
- sleep 5
-fi
-
-if [ "${shortname}" == "ts3" ]; then
- touch "${executabledir}/.ts3server_license_accepted"
-elif [ "${shortname}" == "mc" ] || [ "${shortname}" == "pmc" ]; then
- touch "${serverfiles}/eula.txt"
- echo -e "eula=true" > "${serverfiles}/eula.txt"
-elif [ "${shortname}" == "ut" ]; then
- :
-fi
diff --git a/lgsm/functions/install_factorio_save.sh b/lgsm/functions/install_factorio_save.sh
deleted file mode 100644
index f5fdb8a041..0000000000
--- a/lgsm/functions/install_factorio_save.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash
-# LinuxGSM install_factorio_save.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Creates the initial save file for Factorio.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-echo -e ""
-echo -e "${lightyellow}Creating initial Factorio savefile${default}"
-echo -e "================================="
-fn_sleep_time
-check_glibc.sh
-"${executabledir}"/factorio --create "${serverfiles}/save1"
diff --git a/lgsm/functions/install_gslt.sh b/lgsm/functions/install_gslt.sh
deleted file mode 100644
index 1ae1ef3b01..0000000000
--- a/lgsm/functions/install_gslt.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/bash
-# LinuxGSM install_gslt.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Configures GSLT.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-echo -e ""
-echo -e "${lightyellow}Game Server Login Token${default}"
-echo -e "================================="
-fn_sleep_time
-if [ "${shortname}" == "csgo" ] || [ "${shortname}" == "css" ] || [ "${shortname}" == "nmrih" ] || [ "${shortname}" == "bs" ]; then
- echo -e "GSLT is required to run a public ${gamename} server"
- fn_script_log_info "GSLT is required to run a public ${gamename} server"
-else
- echo -e "GSLT is an optional feature for ${gamename} server"
- fn_script_log_info "GSLT is an optional feature for ${gamename} server"
-fi
-
-echo -e "Get more info and a token here:"
-echo -e "https://docs.linuxgsm.com/steamcmd/gslt"
-fn_script_log_info "Get more info and a token here:"
-fn_script_log_info "https://docs.linuxgsm.com/steamcmd/gslt"
-echo -e ""
-if [ -z "${autoinstall}" ]; then
- if [ "${shortname}" != "tu" ]; then
- echo -e "Enter token below (Can be blank)."
- echo -n "GSLT TOKEN: "
- read -r token
- if ! grep -q "^gslt=" "${configdirserver}/${selfname}.cfg" > /dev/null 2>&1; then
- echo -e "\ngslt=\"${token}\"" >> "${configdirserver}/${selfname}.cfg"
- else
- sed -i -e "s/gslt=\"[^\"]*\"/gslt=\"${token}\"/g" "${configdirserver}/${selfname}.cfg"
- fi
- fi
-fi
-fn_sleep_time
-if [ "${shortname}" == "tu" ]; then
- echo -e "The GSLT can be changed by editing ${servercfgdir}/${servercfg}."
- fn_script_log_info "The GSLT can be changed by editing ${servercfgdir}/${servercfg}."
-else
- echo -e "The GSLT can be changed by editing ${configdirserver}/${selfname}.cfg."
- fn_script_log_info "The GSLT can be changed by editing ${configdirserver}/${selfname}.cfg."
-fi
-echo -e ""
diff --git a/lgsm/functions/install_header.sh b/lgsm/functions/install_header.sh
deleted file mode 100644
index 4cf067f8f4..0000000000
--- a/lgsm/functions/install_header.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash
-# LinuxGSM install_header.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Prints installation header.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-clear
-fn_print_ascii_logo
-fn_sleep_time
-echo -e "================================="
-echo -e "${lightyellow}Linux${default}GSM_"
-echo -e "by Daniel Gibbs"
-echo -e "${lightblue}Version:${default} ${version}"
-echo -e "${lightblue}Game:${default} ${gamename}"
-echo -e "${lightblue}Website:${default} https://linuxgsm.com"
-echo -e "${lightblue}Contributors:${default} https://linuxgsm.com/contrib"
-echo -e "${lightblue}Sponsor:${default} https://linuxgsm.com/sponsor"
-echo -e "================================="
-fn_sleep_time
diff --git a/lgsm/functions/install_logs.sh b/lgsm/functions/install_logs.sh
deleted file mode 100644
index 80a55fb944..0000000000
--- a/lgsm/functions/install_logs.sh
+++ /dev/null
@@ -1,100 +0,0 @@
-#!/bin/bash
-# LinuxGSM install_logs.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Creates log directories.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-if [ "${checklogs}" != "1" ]; then
- echo -e ""
- echo -e "${lightyellow}Creating log directories${default}"
- echo -e "================================="
-fi
-fn_sleep_time
-# Create LinuxGSM logs.
-echo -en "installing log dir: ${logdir}..."
-mkdir -p "${logdir}"
-if [ $? != 0 ]; then
- fn_print_fail_eol_nl
- core_exit.sh
-else
- fn_print_ok_eol_nl
-fi
-
-echo -en "installing LinuxGSM log dir: ${lgsmlogdir}..."
-mkdir -p "${lgsmlogdir}"
-if [ $? != 0 ]; then
- fn_print_fail_eol_nl
- core_exit.sh
-else
- fn_print_ok_eol_nl
-fi
-echo -en "creating LinuxGSM log: ${lgsmlog}..."
-touch "${lgsmlog}"
-if [ $? != 0 ]; then
- fn_print_fail_eol_nl
- core_exit.sh
-else
- fn_print_ok_eol_nl
-fi
-# Create Console logs.
-if [ "${consolelogdir}" ]; then
- echo -en "installing console log dir: ${consolelogdir}..."
- mkdir -p "${consolelogdir}"
- if [ $? != 0 ]; then
- fn_print_fail_eol_nl
- core_exit.sh
- else
- fn_print_ok_eol_nl
- fi
- echo -en "creating console log: ${consolelog}..."
- if ! touch "${consolelog}"; then
- fn_print_fail_eol_nl
- core_exit.sh
- else
- fn_print_ok_eol_nl
- fi
-fi
-
-# Create Game logs.
-if [ "${gamelogdir}" ] && [ ! -d "${gamelogdir}" ]; then
- echo -en "installing game log dir: ${gamelogdir}..."
- if ! mkdir -p "${gamelogdir}"; then
- fn_print_fail_eol_nl
- core_exit.sh
- else
- fn_print_ok_eol_nl
- fi
-fi
-
-# Symlink to gamelogdir
-# unless gamelogdir is within logdir.
-# e.g serverfiles/log is not within log/: symlink created
-# log/server is in log/: symlink not created
-if [ "${gamelogdir}" ]; then
- if [ "${gamelogdir:0:${#logdir}}" != "${logdir}" ]; then
- echo -en "creating symlink to game log dir: ${logdir}/server -> ${gamelogdir}..."
- if ! ln -nfs "${gamelogdir}" "${logdir}/server"; then
- fn_print_fail_eol_nl
- core_exit.sh
- else
- fn_print_ok_eol_nl
- fi
- fi
-fi
-
-# If server uses SteamCMD create a symbolic link to the Steam logs.
-if [ -d "${rootdir}/Steam/logs" ]; then
- if [ ! -L "${logdir}/steamcmd" ]; then
- echo -en "creating symlink to steam log dir: ${logdir}/steamcmd -> ${rootdir}/Steam/logs..."
- if ! ln -nfs "${rootdir}/Steam/logs" "${logdir}/steamcmd"; then
- fn_print_fail_eol_nl
- core_exit.sh
- else
- fn_print_ok_eol_nl
- fi
- fi
-fi
-fn_script_log_info "Logs installed"
diff --git a/lgsm/functions/install_mta_resources.sh b/lgsm/functions/install_mta_resources.sh
deleted file mode 100644
index 011ad9b71d..0000000000
--- a/lgsm/functions/install_mta_resources.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/bash
-# LinuxGSM install_mta_resources.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Installs the libmysqlclient for database functions on the server and optionally installs default resources required to run the server.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-fn_print_information_nl "${gamename} will not function without resources!"
-echo -e " * install default resources using ./${selfname} install-default-resources"
-echo -e " * download resources from https://community.multitheftauto.com"
diff --git a/lgsm/functions/install_retry.sh b/lgsm/functions/install_retry.sh
deleted file mode 100644
index a36b4fb38d..0000000000
--- a/lgsm/functions/install_retry.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-# LinuxGSM install_retry.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Asks for installation retry after failure.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-if fn_prompt_yn "Retry install?" Y; then
- command_install.sh
- core_exit.sh
-else
- exitcode=0
- core_exit.sh
-fi
diff --git a/lgsm/functions/install_server_dir.sh b/lgsm/functions/install_server_dir.sh
deleted file mode 100644
index 658f4360ca..0000000000
--- a/lgsm/functions/install_server_dir.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash
-# LinuxGSM install_server_dir.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Creates the server directory.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-echo -e ""
-echo -e "${lightyellow}Server Directory${default}"
-echo -e "================================="
-fn_sleep_time
-if [ -d "${serverfiles}" ]; then
- fn_print_warning_nl "A server is already installed here."
-fi
-pwd
-if [ -z "${autoinstall}" ]; then
- if ! fn_prompt_yn "Continue?" Y; then
- exitcode=0
- core_exit.sh
- fi
-fi
-if [ ! -d "${serverfiles}" ]; then
- mkdir -v "${serverfiles}"
-fi
diff --git a/lgsm/functions/install_server_files.sh b/lgsm/functions/install_server_files.sh
deleted file mode 100644
index e550e14550..0000000000
--- a/lgsm/functions/install_server_files.sh
+++ /dev/null
@@ -1,255 +0,0 @@
-#!/bin/bash
-# LinuxGSM install_server_files.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Installs server files.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-fn_install_server_files() {
- if [ "${shortname}" == "ahl" ]; then
- remote_fileurl="http://linuxgsm.download/ActionHalfLife/action_halflife-1.0.tar.xz"
- local_filedir="${tmpdir}"
- local_filename="action_halflife-1.0.tar.xz"
- chmodx="nochmodx" run="norun"
- force="noforce"
- md5="61d7b79fd714888b6d65944fdaafa94a"
- elif [ "${shortname}" == "bf1942" ]; then
- remote_fileurl="http://linuxgsm.download/BattleField1942/bf1942_lnxded-1.61-hacked-to-1.612.full.tar.xz"
- local_filedir="${tmpdir}"
- local_filename="bf1942_lnxded-1.61-hacked-to-1.612.full.tar.xz"
- chmodx="nochmodx" run="norun"
- force="noforce"
- md5="4223bf4ed85f5162c24b2cba51249b9e"
- elif [ "${shortname}" == "bfv" ]; then
- remote_fileurl="http://linuxgsm.download/BattlefieldVietnam/bfv_linded-v1.21-20041207_patch.tar.xz"
- local_filedir="${tmpdir}"
- local_filename="bfv_linded-v1.21-20041207_patch.tar.xz"
- chmodx="nochmodx" run="norun"
- force="noforce"
- md5="e3b4962cdd9d41e23c6fed65101bccde"
- elif [ "${shortname}" == "bb" ]; then
- remote_fileurl="http://linuxgsm.download/BrainBread/brainbread-v1.2-linuxserver.tar.xz"
- local_filedir="${tmpdir}"
- local_filename="brainbread-v1.2-linuxserver.tar.xz"
- chmodx="nochmodx" run="norun"
- force="noforce"
- md5="55f227183b736397806d5b6db6143f15"
- elif [ "${shortname}" == "cod" ]; then
- remote_fileurl="http://linuxgsm.download/CallOfDuty/cod-lnxded-1.5b-full.tar.xz"
- local_filedir="${tmpdir}"
- local_filename="cod-lnxded-1.5-large.tar.xz"
- chmodx="nochmodx" run="norun"
- force="noforce"
- md5="ee0ad1ccbfa1fd27fde01a4a431a5c2f"
- elif [ "${shortname}" == "coduo" ]; then
- remote_fileurl="http://linuxgsm.download/CallOfDutyUnitedOffensive/coduo-lnxded-1.51b-full.tar.xz"
- local_filedir="${tmpdir}"
- local_filename="coduo-lnxded-1.51b-full.tar.xz"
- chmodx="nochmodx" run="norun"
- force="noforce"
- md5="35cabccd67adcda44aaebc59405915b9"
- elif [ "${shortname}" == "cod2" ]; then
- remote_fileurl="http://linuxgsm.download/CallOfDuty2/cod2-lnxded-1.3-full.tar.xz"
- local_filedir="${tmpdir}"
- local_filename="cod2-lnxded-1.3-full.tar.xz"
- chmodx="nochmodx" run="norun"
- force="noforce"
- md5="b8c4c611f01627dd43348e78478a3d41"
- elif [ "${shortname}" == "cod4" ]; then
- remote_fileurl="http://linuxgsm.download/CallOfDuty4/cod4x18_lnxded.tar.xz"
- local_filedir="${tmpdir}"
- local_filename="cod4x18_lnxded.tar.xz"
- chmodx="nochmodx" run="norun"
- force="noforce"
- md5="d255b59b9756d7dbead67718208512ee"
- elif [ "${shortname}" == "codwaw" ]; then
- remote_fileurl="http://linuxgsm.download/CallOfDutyWorldAtWar/codwaw-lnxded-1.7-full.tar.xz"
- local_filedir="${tmpdir}"
- local_filename="codwaw-lnxded-1.7-full.tar.xz"
- chmodx="nochmodx" run="norun"
- force="noforce"
- md5="2c6be1bb66ea631b9b2e7ae6216c6680"
- elif [ "${shortname}" == "etl" ]; then
- remote_fileurl="http://linuxgsm.download/WolfensteinEnemyTerritory/etlegacy-v2.78.1-i386-et-260b.tar.xz"
- local_filedir="${tmpdir}"
- local_filename="etlegacy-v2.78.1-i386-et-260b.tar.xz"
- chmodx="nochmodx" run="norun"
- force="noforce"
- md5="7c08b52cb09b30eadb98ea05ef780fc7"
- elif [ "${shortname}" == "mohaa" ]; then
- remote_fileurl="http://linuxgsm.download/MedalofHonorAlliedAssault/moh_revival_v1.12_RC3.5.1.tar.xz"
- local_filedir="${tmpdir}"
- local_filename="moh_revival_v1.12_RC3.5.1.tar.xz"
- chmodx="nochmodx" run="norun"
- force="noforce"
- md5="7c664538999252eeaf2b6d9949416480"
- elif [ "${shortname}" == "ns" ]; then
- remote_fileurl="http://linuxgsm.download/NaturalSelection/ns_dedicated_server_v32.tar.xz"
- local_filedir="${tmpdir}"
- local_filename="ns_dedicated_server_v32.tar.xz"
- chmodx="nochmodx" run="norun"
- force="noforce"
- md5="23ec3cadd93d8bb1c475bad5b9cce370"
- elif [ "${shortname}" == "q2" ]; then
- remote_fileurl="http://linuxgsm.download/Quake2/quake2-3.20-glibc-i386-full-linux2.0.tar.xz"
- local_filedir="${tmpdir}"
- local_filename="quake2-3.20-glibc-i386-full-linux2.0.tar.xz"
- chmodx="nochmodx" run="norun"
- force="noforce"
- md5="2908164a32d4808bb720f2161f6b0c82"
- elif [ "${shortname}" == "q3" ]; then
- remote_fileurl="http://linuxgsm.download/Quake3/quake3-1.32c-x86-full-linux.tar.xz"
- local_filedir="${tmpdir}"
- local_filename="quake3-1.32c-x86-full-linux.tar.xz"
- chmodx="nochmodx" run="norun"
- force="noforce"
- md5="b0e26d8919fe9313fb9d8ded2360f3db"
- elif [ "${shortname}" == "qw" ]; then
- remote_fileurl="http://linuxgsm.download/QuakeWorld/nquake.server.linux.190506.full.tar.xz"
- local_filedir="${tmpdir}"
- local_filename="nquake.server.linux.190506.full.tar.xz"
- chmodx="nochmodx" run="norun"
- force="noforce"
- md5="82055b7d973206c13a606db8ba288d03"
- elif [ "${shortname}" == "rtcw" ]; then
- remote_fileurl="http://linuxgsm.download/ReturnToCastleWolfenstein/iortcw-1.51c-x86_64-server-linux-20190507.tar.xz"
- local_filedir="${tmpdir}"
- local_filename="iortcw-1.51c-x86_64-server-linux-20190507.tar.xz"
- chmodx="nochmodx" run="norun"
- force="noforce"
- md5="df6ff664d37dd0d22787848bdb3cac5f"
- elif [ "${shortname}" == "sfc" ]; then
- remote_fileurl="http://linuxgsm.download/SourceFortsClassic/SFClassic-1.0-RC7-fix.tar.xz"
- local_filedir="${tmpdir}"
- local_filename="SFClassic-1.0-RC7-fix.tar.xz"
- chmodx="nochmodx" run="norun"
- force="noforce"
- md5="70077137185700e28fe6bbb6021d12bc"
- elif [ "${shortname}" == "sof2" ]; then
- remote_fileurl="http://linuxgsm.download/SoldierOfFortune2/sof2gold-1.03.tar.xz"
- local_filedir="${tmpdir}"
- local_filename="sof2gold-1.03.tar.xz"
- chmodx="nochmodx" run="norun"
- force="noforce"
- md5="201e23bab04207d00ce813d001c483d9"
- elif [ "${shortname}" == "ts" ]; then
- remote_fileurl="http://linuxgsm.download/TheSpecialists/ts-3-linux-final.tar.xz"
- local_filedir="${tmpdir}"
- local_filename="ts-3-linux-final.tar.xz"
- chmodx="nochmodx" run="norun"
- force="noforce"
- md5="3c66ecff6e3644f7ac88015732a0fb93"
- elif [ "${shortname}" == "ut2k4" ]; then
- remote_fileurl="http://linuxgsm.download/UnrealTournament2004/ut2004-server-3369-3-ultimate-linux.tar.xz"
- local_filedir="${tmpdir}"
- local_filename="ut2004-server-3369-3-ultimate-linux.tar.xz"
- chmodx="nochmodx" run="norun"
- force="noforce"
- md5="9fceaab68554749f4b45be66613b9a15"
- elif [ "${shortname}" == "ut99" ]; then
- remote_fileurl="http://linuxgsm.download/UnrealTournament99/ut99-server-469b-ultimate-linux.tar.xz"
- local_filedir="${tmpdir}"
- local_filename="ut99-server-469b-ultimate-linux.tar.xz"
- chmodx="nochmodx" run="norun"
- force="noforce"
- md5="dba3f1122a5e60ee45ece7422fcf78f5"
- elif [ "${shortname}" == "ut" ]; then
- remote_fileurl="http://linuxgsm.download/UnrealTournament/UnrealTournament-Server-XAN-3525360-Linux.tar.xz"
- local_filedir="${tmpdir}"
- local_filename="UnrealTournament-Server-XAN-3525360-Linux.tar.xz"
- chmodx="noexecute" run="norun"
- force="noforce"
- md5="41dd92015713a78211eaccf503b72393"
- elif [ "${shortname}" == "ut3" ]; then
- remote_fileurl="http://linuxgsm.download/UnrealTournament3/UT3-linux-server-2.1.tar.xz"
- local_filedir="${tmpdir}"
- local_filename="UT3-linux-server-2.1.tar.xz"
- chmodx="nochmodx" run="norun"
- force="noforce"
- md5="8876cca61e3f83ea08db25208bde6ac6"
- elif [ "${shortname}" == "vs" ]; then
- remote_fileurl="http://linuxgsm.download/VampireSlayer/vs_l-6.0_full.tar.xz"
- local_filedir="${tmpdir}"
- local_filename="vs_l-6.0_full.tar.xz"
- chmodx="nochmodx" run="norun"
- force="noforce"
- md5="b322f79e0abd31847493c52acf802667"
- elif [ "${shortname}" == "wet" ]; then
- remote_fileurl="http://linuxgsm.download/WolfensteinEnemyTerritory/enemy-territory.260b.tar.xz"
- local_filedir="${tmpdir}"
- local_filename="enemy-territory.260b.tar.xz"
- chmodx="nochmodx" run="norun"
- force="noforce"
- md5="581a333cc7eacda2f56d5a00fe11eafa"
- elif [ "${shortname}" == "samp" ]; then
- remote_fileurl="https://files.sa-mp.com/samp037svr_R2-1.tar.gz"
- local_filedir="${tmpdir}"
- local_filename="samp037svr_R2-1.tar.gz"
- chmodx="nochmodx" run="norun"
- force="noforce"
- md5="93705e165550c97484678236749198a4"
- elif [ "${shortname}" == "zmr" ]; then
- remote_fileurl="http://linuxgsm.download/ZombieMasterReborn/zombie_master_reborn_b6_1.tar.xz"
- local_filedir="${tmpdir}"
- local_filename="zombie_master_reborn_b6_1.tar.xz"
- chmodx="nochmodx" run="norun"
- force="noforce"
- md5="0188ae86dbc9376f11ae3032dba2d665"
- else
- fn_print_fail_nl "Installing ${gamename} Server failed, missing default configuration"
- fn_script_log_fatal "Installing ${gamename} Server failed, missing default configuration"
- fi
- fn_fetch_file "${remote_fileurl}" "" "" "" "${local_filedir}" "${local_filename}" "${chmodx}" "${run}" "${forcedl}" "${md5}"
- fn_dl_extract "${local_filedir}" "${local_filename}" "${serverfiles}"
-}
-
-echo -e ""
-echo -e "${lightyellow}Installing ${gamename} Server${default}"
-echo -e "================================="
-fn_sleep_time
-
-if [ "${appid}" ]; then
- remotelocation="SteamCMD"
- fn_dl_steamcmd
-fi
-
-if [ "${shortname}" == "ts3" ]; then
- update_ts3.sh
-elif [ "${shortname}" == "mc" ]; then
- install_eula.sh
- update_minecraft.sh
-elif [ "${shortname}" == "mcb" ]; then
- update_minecraft_bedrock.sh
-elif [ "${shortname}" == "pmc" ]; then
- install_eula.sh
- update_papermc.sh
-elif [ "${shortname}" == "wmc" ] || [ "${shortname}" == "vpmc" ]; then
- update_papermc.sh
-elif [ "${shortname}" == "mta" ]; then
- update_mta.sh
-elif [ "${shortname}" == "fctr" ]; then
- update_factorio.sh
- install_factorio_save.sh
-elif [ "${shortname}" == "jk2" ]; then
- update_jediknight2.sh
-elif [ "${shortname}" == "vints" ]; then
- update_vintagestory.sh
-elif [ "${shortname}" == "ut99" ]; then
- fn_install_server_files
- update_ut99.sh
-elif [ -z "${appid}" ] || [ "${shortname}" == "ahl" ] || [ "${shortname}" == "bb" ] || [ "${shortname}" == "ns" ] || [ "${shortname}" == "sfc" ] || [ "${shortname}" == "ts" ] || [ "${shortname}" == "vs" ] || [ "${shortname}" == "zmr" ]; then
- if [ "${shortname}" == "ut" ]; then
- install_eula.sh
- fi
- fn_install_server_files
-fi
-
-if [ -z "${autoinstall}" ]; then
- echo -e ""
- echo -e "================================="
- if ! fn_prompt_yn "Was the install successful?" Y; then
- install_retry.sh
- fi
-fi
diff --git a/lgsm/functions/install_squad_license.sh b/lgsm/functions/install_squad_license.sh
deleted file mode 100644
index 181646e85b..0000000000
--- a/lgsm/functions/install_squad_license.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash
-# LinuxGSM install_squad_license.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Configures the Squad server's license.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-echo -e ""
-echo -e "${lightyellow}Squad Server License${default}"
-echo -e "================================="
-fn_sleep_time
-echo -e "Server license is an optional feature for ${gamename} server"
-fn_script_log_info "Server license is an optional feature for ${gamename} server"
-
-echo -e "Get more info and a server license here:"
-echo -e "http://forums.joinsquad.com/topic/16519-server-licensing-general-info/"
-fn_script_log_info "Get more info and a server license here:"
-fn_script_log_info "http://forums.joinsquad.com/topic/16519-server-licensing-general-info/"
-echo -e ""
-fn_sleep_time
-echo -e "The Squad server license can be changed by editing ${servercfgdir}/License.cfg."
-fn_script_log_info "The Squad server license can be changed by editing ${selfname}."
-echo -e ""
diff --git a/lgsm/functions/install_stats.sh b/lgsm/functions/install_stats.sh
deleted file mode 100644
index d3b45b40b8..0000000000
--- a/lgsm/functions/install_stats.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-# LinuxGSM install_stats.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Enabled LinuxGSM Stats.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-echo -e ""
-echo -e "${lightyellow}LinuxGSM Stats${default}"
-echo -e "================================="
-fn_sleep_time
-echo -e "Assist LinuxGSM development by sending anonymous stats to developers."
-echo -e "More info: https://docs.linuxgsm.com/configuration/linuxgsm-stats"
-echo -e "The following info will be sent:"
-echo -e "* game server"
-echo -e "* distro"
-echo -e "* game server resource usage"
-echo -e "* server hardware info"
-if [ -z "${autoinstall}" ]; then
- if fn_prompt_yn "Allow anonymous usage statistics?" Y; then
- echo "stats=\"on\"" >> "${configdirserver}/common.cfg"
- fn_print_information_nl "Stats setting is now enabled in common.cfg."
- fi
-else
- fn_print_information_nl "auto-install leaves stats off by default. Stats can be enabled in common.cfg"
-fi
diff --git a/lgsm/functions/install_steamcmd.sh b/lgsm/functions/install_steamcmd.sh
deleted file mode 100644
index b1e64a42cd..0000000000
--- a/lgsm/functions/install_steamcmd.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/bash
-# LinuxGSM install_steamcmd.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Downloads SteamCMD on install.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-echo -e ""
-echo -e "${lightyellow}Installing SteamCMD${default}"
-echo -e "================================="
-fn_sleep_time
-check_steamcmd.sh
diff --git a/lgsm/functions/install_ts3db.sh b/lgsm/functions/install_ts3db.sh
deleted file mode 100644
index ed879cd287..0000000000
--- a/lgsm/functions/install_ts3db.sh
+++ /dev/null
@@ -1,76 +0,0 @@
-#!/bin/bash
-# LinuxGSM install_ts3db.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Installs the database server MariaDB for TeamSpeak 3.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-fn_install_ts3db_mariadb() {
- if [ ! -f "${serverfiles}/libts3db_mariadb.so" ]; then
- echo -e "copying libmariadb.so.2...\c"
- cp "${serverfiles}/redist/libmariadb.so.2" "${serverfiles}"
- local exitcode=$?
- if [ "${exitcode}" != "0" ]; then
- fn_print_fail_eol_nl
- fn_script_log_fatal "copying libmariadb.so.2"
- core_exit.sh
- else
- fn_print_ok_eol_nl
- fn_script_log_pass "copying libmariadb.so.2"
- fi
- fi
-
- echo -e ""
- echo -e "${lightyellow}Configure ${gamename} Server for MariaDB${default}"
- echo -e "================================="
- fn_sleep_time
- read -rp "Enter MariaDB hostname: " mariahostname
- read -rp "Enter MariaDB port: " mariaport
- read -rp "Enter MariaDB username: " mariausername
- read -rp "Enter MariaDB password: " mariapassword
- read -rp "Enter MariaDB database name: " mariadbname
- read -rp "Enter MariaDB socket path: " mariadbsocket
-
- {
- echo -e "[config]"
- echo -e "host='${mariahostname}'"
- echo -e "port='${mariaport}'"
- echo -e "username='${mariausername}'"
- echo -e "password='${mariapassword}'"
- echo -e "database='${mariadbname}'"
- echo -e "socket='${mariadbsocket}'"
- } >> "${servercfgdir}/ts3db_mariadb.ini"
- sed -i "s/dbplugin=ts3db_sqlite3/dbplugin=ts3db_mariadb/g" "${servercfgfullpath}"
- sed -i "s/dbpluginparameter=/dbpluginparameter=ts3db_mariadb.ini/g" "${servercfgfullpath}"
- sed -i "s/dbsqlcreatepath=create_sqlite\//dbsqlcreatepath=create_mariadb\//g" "${servercfgfullpath}"
- echo -e "updating ts3db_mariadb.ini."
- fn_sleep_time
-}
-
-echo -e ""
-echo -e "${lightyellow}Select Database${default}"
-echo -e "================================="
-fn_sleep_time
-if [ -z "${autoinstall}" ]; then
- if fn_prompt_yn "Do you want to use MariaDB instead of sqlite? (MariaDB must be pre-configured)" N; then
- fn_install_ts3db_mariadb
- fi
-else
- fn_print_information_nl "./${selfname} auto-install is uses sqlite. For MariaDB use ./${selfname} install"
-fi
-
-install_eula.sh
-
-echo -e ""
-echo -e "${lightyellow}Getting Privilege Key${default}"
-echo -e "================================="
-fn_sleep_time
-fn_print_information_nl "Save these details for later."
-fn_print_information_nl "Key also saved in:"
-echo -e "${serverfiles}/privilege_key.txt"
-cd "${executabledir}" || exit
-./ts3server_startscript.sh start inifile=ts3-server.ini 2>&1 | tee "${serverfiles}/privilege_key.txt"
-sleep 5
-./ts3server_startscript.sh stop
diff --git a/lgsm/functions/install_ut2k4_key.sh b/lgsm/functions/install_ut2k4_key.sh
deleted file mode 100644
index 124052d05d..0000000000
--- a/lgsm/functions/install_ut2k4_key.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/bash
-# LinuxGSM install_ut2k4_key.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Activates ut2k4 server with given key.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-echo -e ""
-echo -e "${lightyellow}Enter ${gamename} CD Key${default}"
-echo -e "================================="
-fn_sleep_time
-echo -e "To get your server listed on the Master Server list"
-echo -e "you must get a free CD key. Get a key here:"
-echo -e "https://www.epicgames.com/unrealtournament/forums/cdkey.php?2004"
-echo -e ""
-if [ -z "${autoinstall}" ]; then
- echo -e "Once you have the key enter it below"
- echo -n "KEY: "
- read -r CODE
- echo -e ""\""CDKey"\""="\""${CODE}"\""" > "${systemdir}/cdkey"
- if [ -f "${systemdir}/cdkey" ]; then
- fn_script_log_info "UT2K4 Server CD Key created"
- fi
-else
- echo -e "You can add your key using the following command"
- echo -e "./${selfname} server-cd-key"
-fi
-echo -e ""
diff --git a/lgsm/functions/mods_core.sh b/lgsm/functions/mods_core.sh
deleted file mode 100644
index 8e4ade7716..0000000000
--- a/lgsm/functions/mods_core.sh
+++ /dev/null
@@ -1,755 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_mods_install.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Core functions for mods list/install/update/remove
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-# Files and Directories.
-modsdir="${lgsmdir}/mods"
-modstmpdir="${modsdir}/tmp"
-extractdest="${modstmpdir}/extract"
-modsinstalledlist="installed-mods.txt"
-modsinstalledlistfullpath="${modsdir}/${modsinstalledlist}"
-
-## Installation.
-
-# Download management.
-fn_mod_install_files() {
- fn_fetch_file "${modurl}" "" "" "" "${modstmpdir}" "${modfilename}"
- # Check if variable is valid checking if file has been downloaded and exists.
- if [ ! -f "${modstmpdir}/${modfilename}" ]; then
- fn_print_failure "An issue occurred downloading ${modprettyname}"
- fn_script_log_fatal "An issue occurred downloading ${modprettyname}"
- core_exit.sh
- fi
- if [ ! -d "${extractdest}" ]; then
- mkdir -p "${extractdest}"
- fi
- fn_dl_extract "${modstmpdir}" "${modfilename}" "${extractdest}"
-}
-
-# Convert mod files to lowercase if needed.
-fn_mod_lowercase() {
- # Checking lowercase settings from mods array definition
- if [ "${modlowercase}" == "LowercaseOn" ]; then
- echo -en "converting ${modprettyname} files to lowercase..."
- fn_sleep_time
- fn_script_log_info "Converting ${modprettyname} files to lowercase"
- # Total files and directories for the mod, to output to the user
- fileswc=$(find "${extractdest}" | wc -l)
- # Total uppercase files and directories for the mod, to output to the user
- filesupperwc=$(find "${extractdest}" -name '*[[:upper:]]*' | wc -l)
- fn_script_log_info "Found ${filesupperwc} uppercase files out of ${fileswc}, converting"
- echo -en "Found ${filesupperwc} uppercase files out of ${fileswc}, converting..."
- # Convert files and directories starting from the deepest to prevent issues (-depth argument)
- while read -r src; do
- # We have to convert only the last file from the path, otherwise we will fail to convert anything if a parent dir has any uppercase
- # therefore, we have to separate the end of the filename to only lowercase it rather than the whole line
- # Gather parent dir, filename lowercase filename, and set lowercase destination name
- latestparentdir=$(dirname "${src}")
- latestfilelc=$(basename "${src}" | tr '[:upper:]' '[:lower:]')
- dst="${latestparentdir}/${latestfilelc}"
- # Only convert if destination does not already exist for some reason
- if [ ! -e "${dst}" ]; then
- # Finally we can rename the file
- mv "${src}" "${dst}"
- # Exit if it fails for any reason
- local exitcode=$?
- if [ "${exitcode}" != 0 ]; then
- fn_print_fail_eol_nl
- core_exit.sh
- fi
- fi
- done < <(find "${extractdest}" -depth -name '*[[:upper:]]*')
- fn_print_ok_eol_nl
- fi
-}
-
-# Create ${modcommand}-files.txt containing the full extracted file/directory list.
-fn_mod_create_filelist() {
- echo -en "building ${modcommand}-files.txt..."
- fn_sleep_time
- # ${modsdir}/${modcommand}-files.txt.
- find "${extractdest}" -mindepth 1 -printf '%P\n' > "${modsdir}/${modcommand}-files.txt"
- local exitcode=$?
- if [ "${exitcode}" != 0 ]; then
- fn_print_fail_eol_nl
- fn_script_log_fatal "Building ${modsdir}/${modcommand}-files.txt"
- core_exit.sh
- else
- fn_print_ok_eol_nl
- fn_script_log_pass "Building ${modsdir}/${modcommand}-files.txt"
- fi
- # Adding removed files if needed.
- if [ -f "${modsdir}/.removedfiles.tmp" ]; then
- cat "${modsdir}/.removedfiles.tmp" >> "${modsdir}/${modcommand}-files.txt"
- fi
-}
-
-# Copy the mod into serverfiles.
-fn_mod_copy_destination() {
- echo -en "copying ${modprettyname} to ${modinstalldir}..."
- fn_sleep_time
- cp -Rf "${extractdest}/." "${modinstalldir}/"
- local exitcode=$?
- if [ "${exitcode}" != 0 ]; then
- fn_print_fail_eol_nl
- fn_script_log_fatal "Copying ${modprettyname} to ${modinstalldir}"
- else
- fn_print_ok_eol_nl
- fn_script_log_pass "Copying ${modprettyname} to ${modinstalldir}"
- fi
-}
-
-# Add the mod to the installed-mods.txt.
-fn_mod_add_list() {
- if [ -z "$(sed -n "/^${modcommand}$/p" "${modsinstalledlistfullpath}")" ]; then
- echo -e "${modcommand}" >> "${modsinstalledlistfullpath}"
- fn_script_log_info "${modcommand} added to ${modsinstalledlist}"
- fi
-}
-
-# Prevent sensitive directories from being erased upon uninstall by removing them from: ${modcommand}-files.txt.
-fn_mod_tidy_files_list() {
- # Check file list validity.
- fn_check_mod_files_list
- # Output to the user
- echo -en "tidy up ${modcommand}-files.txt..."
- fn_sleep_time
- fn_script_log_info "Tidy up ${modcommand}-files.txt"
- # Lines/files to remove from file list (end with ";" separator).
- removefromlist="cfg;addons;RustDedicated_Data;RustDedicated_Data\/Managed;RustDedicated_Data\/Managed\/x86;RustDedicated_Data\/Managed\/x64;"
- # Loop through files to remove from file list,
- # generate elements to remove from list.
- removefromlistamount=$(echo -e "${removefromlist}" | awk -F ';' '{ print NF }')
- # Test all subvalue of "removefromlist" using the ";" separator.
- for ((filesindex = 1; filesindex < removefromlistamount; filesindex++)); do
- # Put current file into test variable.
- removefilevar=$(echo -e "${removefromlist}" | awk -F ';' -v x=${filesindex} '{ print $x }')
- # Delete line(s) matching exactly.
- sed -i "/^${removefilevar}$/d" "${modsdir}/${modcommand}-files.txt"
- # Exit on error.
- local exitcode=$?
- if [ "${exitcode}" != 0 ]; then
- fn_print_fail_eol_nl
- fn_script_log_fatal "Error while tidying line: ${removefilevar} from: ${modsdir}/${modcommand}-files.txt"
- core_exit.sh
- break
- fi
- done
- fn_print_ok_eol_nl
- # Sourcemod fix
- # Remove metamod from sourcemod fileslist.
- if [ "${modcommand}" == "sourcemod" ]; then
- # Remove addons/metamod & addons/metamod/sourcemod.vdf from ${modcommand}-files.txt.
- sed -i "/^addons\/metamod$/d" "${modsdir}/${modcommand}-files.txt"
- sed -i "/^addons\/metamod\/sourcemod.vdf$/d" "${modsdir}/${modcommand}-files.txt"
- fi
-
- # Remove common paths from deletion list (Add your sourcemod mod here)
- if [ "${modcommand}" == "gokz" ] || [ "${modcommand}" == "ttt" ] || [ "${modcommand}" == "steamworks" ] || [ "${modcommand}" == "get5" ]; then
- sed -i "/^addons\/sourcemod$/d" "${modsdir}/${modcommand}-files.txt"
- sed -i "/^addons\/sourcemod\/configs$/d" "${modsdir}/${modcommand}-files.txt"
- sed -i "/^addons\/sourcemod\/extensions$/d" "${modsdir}/${modcommand}-files.txt"
- sed -i "/^addons\/sourcemod\/logs$/d" "${modsdir}/${modcommand}-files.txt"
- sed -i "/^addons\/sourcemod\/plugins$/d" "${modsdir}/${modcommand}-files.txt"
- sed -i "/^addons\/sourcemod\/plugins\/disabled$/d" "${modsdir}/${modcommand}-files.txt"
- sed -i "/^addons\/sourcemod\/scripting$/d" "${modsdir}/${modcommand}-files.txt"
- sed -i "/^addons\/sourcemod\/scripting\/include$/d" "${modsdir}/${modcommand}-files.txt"
- sed -i "/^addons\/sourcemod\/translations$/d" "${modsdir}/${modcommand}-files.txt"
- # Don't delete directories of translations like 'fr', 'sv', 'de', etc
- sed -i "/^addons\/sourcemod\/translations\/[A-Za-z0-9_]*$/d" "${modsdir}/${modcommand}-files.txt"
- sed -i "/^cfg\/sourcemod$/d" "${modsdir}/${modcommand}-files.txt"
- sed -i "/^maps$/d" "${modsdir}/${modcommand}-files.txt"
- sed -i "/^materialss$/d" "${modsdir}/${modcommand}-files.txt"
- sed -i "/^materials\/models$/d" "${modsdir}/${modcommand}-files.txt"
- sed -i "/^materials\/models\/weapons$/d" "${modsdir}/${modcommand}-files.txt"
- sed -i "/^materials\/darkness$/d" "${modsdir}/${modcommand}-files.txt"
- sed -i "/^materials\/decals$/d" "${modsdir}/${modcommand}-files.txt"
- sed -i "/^materials\/overlays$/d" "${modsdir}/${modcommand}-files.txt"
- sed -i "/^models$/d" "${modsdir}/${modcommand}-files.txt"
- sed -i "/^models\/weapons$/d" "${modsdir}/${modcommand}-files.txt"
- sed -i "/^sound$/d" "${modsdir}/${modcommand}-files.txt"
- sed -i "/^sound\/weapons$/d" "${modsdir}/${modcommand}-files.txt"
- fi
-
- # Remove paths of specific mods from deletion list
- if [ "${modcommand}" == "gokz" ]; then
- sed -i "/^addons\/sourcemod\/scripting\/include\/smjansson.inc$/d" "${modsdir}/${modcommand}-files.txt"
- sed -i "/^addons\/sourcemod\/scripting\/include\/GlobalAPI-Core.inc$/d" "${modsdir}/${modcommand}-files.txt"
- sed -i "/^addons\/sourcemod\/scripting\/include\/sourcebanspp.inc$/d" "${modsdir}/${modcommand}-files.txt"
- sed -i "/^addons\/sourcemod\/scripting\/include\/autoexecconfig.inc$/d" "${modsdir}/${modcommand}-files.txt"
- sed -i "/^addons\/sourcemod\/scripting\/include\/colorvariables.inc$/d" "${modsdir}/${modcommand}-files.txt"
- sed -i "/^addons\/sourcemod\/scripting\/include\/movementapi.inc$/d" "${modsdir}/${modcommand}-files.txt"
- sed -i "/^addons\/sourcemod\/scripting\/include\/movement.inc$/d" "${modsdir}/${modcommand}-files.txt"
- sed -i "/^addons\/sourcemod\/scripting\/include\/dhooks.inc$/d" "${modsdir}/${modcommand}-files.txt"
- sed -i "/^addons\/sourcemod\/scripting\/include\/updater.inc$/d" "${modsdir}/${modcommand}-files.txt"
- fi
-}
-
-## Information Gathering.
-
-# Get details of a mod any (relevant and unique, such as full mod name or install command) value.
-fn_mod_get_info() {
- # Variable to know when job is done.
- modinfocommand="0"
- # Find entry in global array.
- for ((index = 0; index <= ${#mods_global_array[@]}; index++)); do
- # When entry is found.
- if [ "${mods_global_array[index]}" == "${currentmod}" ]; then
- # Go back to the previous "MOD" separator.
- for ((index = index; index <= ${#mods_global_array[@]}; index--)); do
- # When "MOD" is found.
- if [ "${mods_global_array[index]}" == "MOD" ]; then
- # Get info.
- fn_mods_define
- modinfocommand="1"
- break
- fi
- done
- fi
- # Exit the loop if job is done.
- if [ "${modinfocommand}" == "1" ]; then
- break
- fi
- done
-
- # What happens if mod is not found.
- if [ "${modinfocommand}" == "0" ]; then
- fn_script_log_error "Could not find information for ${currentmod}"
- fn_print_error_nl "Could not find information for ${currentmod}"
- core_exit.sh
- fi
-}
-
-# Define all variables for a mod at once when index is set to a separator.
-fn_mods_define() {
- if [ -z "$index" ]; then
- fn_script_log_fatal "index variable not set. Please report an issue."
- fn_print_error "index variable not set. Please report an issue."
- echo -e "* https://github.com/GameServerManagers/LinuxGSM/issues"
- core_exit.sh
- fi
- modcommand="${mods_global_array[index + 1]}"
- modprettyname="${mods_global_array[index + 2]}"
- modurl="${mods_global_array[index + 3]}"
- modfilename="${mods_global_array[index + 4]}"
- modsubdirs="${mods_global_array[index + 5]}"
- modlowercase="${mods_global_array[index + 6]}"
- modinstalldir="${mods_global_array[index + 7]}"
- modkeepfiles="${mods_global_array[index + 8]}"
- modengines="${mods_global_array[index + 9]}"
- modgames="${mods_global_array[index + 10]}"
- modexcludegames="${mods_global_array[index + 11]}"
- modsite="${mods_global_array[index + 12]}"
- moddescription="${mods_global_array[index + 13]}"
-}
-
-# Builds list of installed mods.
-# using installed-mods.txt grabing mod info from mods_list.sh.
-fn_mods_installed_list() {
- fn_mods_count_installed
- # Set/reset variables.
- installedmodsline="1"
- installedmodslist=()
- modprettynamemaxlength="0"
- modsitemaxlength="0"
- moddescriptionmaxlength="0"
- modcommandmaxlength="0"
- # Loop through every line of the installed mods list ${modsinstalledlistfullpath}.
- while [ "${installedmodsline}" -le "${installedmodscount}" ]; do
- currentmod=$(sed "${installedmodsline}q;d" "${modsinstalledlistfullpath}")
- # Get mod info to make sure mod exists.
- fn_mod_get_info
- # Add the mod to available commands.
- installedmodslist+=("${modcommand}")
- # Increment line check.
- ((installedmodsline++))
- done
- if [ "${installedmodscount}" ]; then
- fn_script_log_info "${installedmodscount} addons/mods are currently installed"
- fi
-}
-
-# Loops through mods_global_array to define available mods & provide available commands for mods installation.
-fn_mods_available() {
- # First, reset variables.
- compatiblemodslist=()
- availablemodscommands=()
- # Find compatible games.
- # Find separators through the global array.
- for ((index = "0"; index <= ${#mods_global_array[@]}; index++)); do
- # If current value is a separator; then.
- if [ "${mods_global_array[index]}" == "${modseparator}" ]; then
- # Set mod variables.
- fn_mods_define
- # Test if game is compatible.
- fn_mod_compatible_test
- # If game is compatible.
- if [ "${modcompatibility}" == "1" ]; then
- # Put it into an array to prepare user output.
- compatiblemodslist+=("${modprettyname}" "${modcommand}" "${modsite}" "${moddescription}")
- # Keep available commands in an array to make life easier.
- availablemodscommands+=("${modcommand}")
- fi
- fi
- done
-}
-
-## Mod compatibility check.
-
-# Find out if a game is compatible with a mod from a modgames (list of games supported by a mod) variable.
-fn_compatible_mod_games() {
- # Reset test value.
- modcompatiblegame="0"
- # If value is set to GAMES (ignore).
- if [ "${modgames}" != "GAMES" ]; then
- # How many games we need to test.
- gamesamount=$(echo -e "${modgames}" | awk -F ';' '{ print NF }')
- # Test all subvalue of "modgames" using the ";" separator.
- for ((gamevarindex = 1; gamevarindex < gamesamount; gamevarindex++)); do
- # Put current game name into modtest variable.
- gamemodtest=$(echo -e "${modgames}" | awk -F ';' -v x=${gamevarindex} '{ print $x }')
- # If game name matches.
- if [ "${gamemodtest}" == "${gamename}" ]; then
- # Mod is compatible.
- modcompatiblegame="1"
- fi
- done
- fi
-}
-
-# Find out if an engine is compatible with a mod from a modengines (list of engines supported by a mod) variable.
-fn_compatible_mod_engines() {
- # Reset test value.
- modcompatibleengine="0"
- # If value is set to ENGINES (ignore).
- if [ "${modengines}" != "ENGINES" ]; then
- # How many engines we need to test.
- enginesamount=$(echo -e "${modengines}" | awk -F ';' '{ print NF }')
- # Test all subvalue of "modengines" using the ";" separator.
- for ((gamevarindex = 1; gamevarindex < ${enginesamount}; gamevarindex++)); do
- # Put current engine name into modtest variable.
- enginemodtest=$(echo -e "${modengines}" | awk -F ';' -v x=${gamevarindex} '{ print $x }')
- # If engine name matches.
- if [ "${enginemodtest}" == "${engine}" ]; then
- # Mod is compatible.
- modcompatibleengine="1"
- fi
- done
- fi
-}
-
-# Find out if a game is not compatible with a mod from a modnotgames (list of games not supported by a mod) variable.
-fn_not_compatible_mod_games() {
- # Reset test value.
- modeincompatiblegame="0"
- # If value is set to NOTGAMES (ignore).
- if [ "${modexcludegames}" != "NOTGAMES" ]; then
- # How many engines we need to test.
- excludegamesamount=$(echo -e "${modexcludegames}" | awk -F ';' '{ print NF }')
- # Test all subvalue of "modexcludegames" using the ";" separator.
- for ((gamevarindex = 1; gamevarindex < excludegamesamount; gamevarindex++)); do
- # Put current engine name into modtest variable.
- excludegamemodtest=$(echo -e "${modexcludegames}" | awk -F ';' -v x=${gamevarindex} '{ print $x }')
- # If engine name matches.
- if [ "${excludegamemodtest}" == "${gamename}" ]; then
- # Mod is compatible.
- modeincompatiblegame="1"
- fi
- done
- fi
-}
-
-# Sums up if a mod is compatible or not with modcompatibility=0/1.
-fn_mod_compatible_test() {
- # Test game and engine compatibility.
- fn_compatible_mod_games
- fn_compatible_mod_engines
- fn_not_compatible_mod_games
- if [ "${modeincompatiblegame}" == "1" ]; then
- modcompatibility="0"
- elif [ "${modcompatibleengine}" == "1" ] || [ "${modcompatiblegame}" == "1" ]; then
- modcompatibility="1"
- else
- modcompatibility="0"
- fi
-}
-
-## Directory management.
-
-# Create mods files and directories if it doesn't exist.
-fn_create_mods_dir() {
- # Create lgsm data modsdir.
- if [ ! -d "${modsdir}" ]; then
- echo -en "creating LinuxGSM mods data directory ${modsdir}..."
- mkdir -p "${modsdir}"
- exitcode=$?
- if [ "${exitcode}" != 0 ]; then
- fn_print_fail_eol_nl
- fn_script_log_fatal "Creating mod download dir ${modsdir}"
- core_exit.sh
- else
- fn_print_ok_eol_nl
- fn_script_log_pass "Creating mod download dir ${modsdir}"
- fi
- fi
- # Create mod install directory.
- if [ ! -d "${modinstalldir}" ]; then
- echo -en "creating mods install directory ${modinstalldir}..."
- mkdir -p "${modinstalldir}"
- exitcode=$?
- if [ "${exitcode}" != 0 ]; then
- fn_print_fail_eol_nl
- fn_script_log_fatal "Creating mod install directory ${modinstalldir}"
- core_exit.sh
- else
- fn_print_ok_eol_nl
- fn_script_log_pass "Creating mod install directory ${modinstalldir}"
- fi
- fi
-
- # Create lgsm/data/${modsinstalledlist}.
- if [ ! -f "${modsinstalledlistfullpath}" ]; then
- touch "${modsinstalledlistfullpath}"
- fn_script_log_info "Created ${modsinstalledlistfullpath}"
- fi
-}
-
-# Create tmp download mod directory.
-fn_mods_create_tmp_dir() {
- if [ ! -d "${modstmpdir}" ]; then
- mkdir -p "${modstmpdir}"
- exitcode=$?
- echo -en "creating mod download directory ${modstmpdir}..."
- if [ "${exitcode}" != 0 ]; then
- fn_print_fail_eol_nl
- fn_script_log_fatal "Creating mod download directory ${modstmpdir}"
- core_exit.sh
- else
- fn_print_ok_eol_nl
- fn_script_log_pass "Creating mod download directory ${modstmpdir}"
- fi
- fi
-}
-
-# Remove the tmp mod download directory when finished.
-fn_mods_clear_tmp_dir() {
- if [ -d "${modstmpdir}" ]; then
- echo -en "clearing mod download directory ${modstmpdir}..."
- rm -rf "${modstmpdir:?}"
- exitcode=$?
- if [ "${exitcode}" != 0 ]; then
- fn_print_fail_eol_nl
- fn_script_log_fatal "Clearing mod download directory ${modstmpdir}"
- core_exit.sh
- else
- fn_print_ok_eol_nl
- fn_script_log_pass "Clearing mod download directory ${modstmpdir}"
- fi
-
- fi
- # Clear temp file list as well.
- if [ -f "${modsdir}/.removedfiles.tmp" ]; then
- rm -f "${modsdir:?}/.removedfiles.tmp"
- fi
-}
-
-# Counts how many mods were installed.
-fn_mods_count_installed() {
- if [ -f "${modsinstalledlistfullpath}" ]; then
- installedmodscount=$(wc -l < "${modsinstalledlistfullpath}")
- else
- installedmodscount=0
- fi
-}
-
-# Exits if no mods were installed.
-fn_mods_check_installed() {
- # Count installed mods.
- fn_mods_count_installed
- # If no mods are found.
- if [ ${installedmodscount} -eq 0 ]; then
- echo -e ""
- fn_print_failure_nl "No installed mods or addons were found"
- echo -e " * Install mods using LinuxGSM first with: ./${selfname} mods-install"
- fn_script_log_error "No installed mods or addons were found."
- core_exit.sh
- fi
-}
-
-# Checks that mod files list exists and isn't empty.
-fn_check_mod_files_list() {
- # File list must exist and be valid before any operation on it.
- if [ -f "${modsdir}/${modcommand}-files.txt" ]; then
- # How many lines is the file list.
- modsfilelistsize=$(wc -l < "${modsdir}/${modcommand}-files.txt")
- # If file list is empty.
- if [ "${modsfilelistsize}" -eq 0 ]; then
- fn_print_failure "${modcommand}-files.txt is empty"
- echo -e "* Unable to remove ${modprettyname}"
- fn_script_log_fatal "${modcommand}-files.txt is empty: Unable to remove ${modprettyname}."
- core_exit.sh
- fi
- else
- fn_print_failure "${modsdir}/${modcommand}-files.txt does not exist"
- fn_script_log_fatal "${modsdir}/${modcommand}-files.txt does not exist: Unable to remove ${modprettyname}."
- core_exit.sh
- fi
-}
-
-fn_mod_exist() {
- modreq=$1
- # requires one parameter, the mod
- if [ -f "${modsdir}/${modreq}-files.txt" ]; then
- # how many lines is the file list
- modsfilelistsize=$(wc -l < "${modsdir}/${modreq}-files.txt")
- # if file list is empty
- if [ "${modsfilelistsize}" -eq 0 ]; then
- fn_mod_required_fail_exist "${modreq}"
- fi
- else
- fn_mod_required_fail_exist "${modreq}"
- fi
-}
-
-fn_mod_required_fail_exist() {
- modreq=$1
- # requires one parameter, the mod
- fn_script_log_fatal "${modreq}-files.txt is empty: unable to find ${modreq} installed"
- echo -en "* Unable to find '${modreq}' which is required prior to installing this mod..."
- fn_print_fail_eol_nl
- core_exit.sh
-}
-
-fn_mod_liblist_gam_filenames() {
- # clear variables just in case
- moddll=""
- modso=""
- moddylib=""
-
- # default libraries
- case ${gamename} in
- "Counter-Strike 1.6")
- moddll="mp.dll"
- modso="cs.so"
- moddylib="cs.dylib"
- ;;
- "Day of Defeat")
- moddll="dod.dll"
- modso="dod.so"
- moddylib="dod.dylib"
- ;;
- "Team Fortress Classic")
- moddll="tfc.dll"
- modso="tfc.so"
- moddylib="tfc.dylib"
- ;;
- "Natural Selection")
- moddll="ns.dll"
- modso="ns_i386.so"
- moddylib=""
- ;;
- "The Specialists")
- moddll="mp.dll"
- modso="ts_i386.so"
- moddylib=""
- ;;
- "Half-Life: Deathmatch")
- moddll="hl.dll"
- modso="hl.so"
- moddylib="hl.dylib"
- ;;
- esac
-}
-
-# modifers for liblist.gam to add/remote metamod binaries
-fn_mod_install_liblist_gam_file() {
-
- fn_mod_liblist_gam_filenames
-
- if [ -f "${modinstalldir}/liblist.gam" ]; then
- # modify the liblist.gam file to initialize Metamod
- logentry="sed replace (dlls\\${moddll}) ${modinstalldir}/liblist.gam"
- echo -en "modifying gamedll in liblist.gam..."
- rpldll="s/dlls\\\\${moddll}/addons\/metamod\/dlls\/metamod.dll/g"
- sed -i $rpldll "${modinstalldir}/liblist.gam"
- grep -q "addons/metamod/dlls/metamod.dll" "${modinstalldir}/liblist.gam"
- exitcode=$?
- # if replacement back didn't happen, error out.
- if [ "${exitcode}" != 0 ]; then
- fn_script_log_fatal "${logentry}"
- fn_print_fail_eol_nl
- else
- fn_script_log_pass "${logentry}"
- fn_print_ok_eol_nl
- fi
-
- # modify the liblist.gam file to initialize metamod
- logentry="sed replace (dlls\\${modso}) ${modinstalldir}/liblist.gam"
- echo -en "modifying gamedll_linux in liblist.gam..."
- rplso="s/dlls\/${modso}/addons\/metamod\/dlls\/metamod.so/g"
- sed -i $rplso "${modinstalldir}/liblist.gam"
- grep -q "addons/metamod/dlls/metamod.so" "${modinstalldir}/liblist.gam"
- exitcode=$?
- # if replacement back didn't happen, error out
- if [ "${exitcode}" != 0 ]; then
- fn_script_log_fatal "${logentry}"
- fn_print_fail_eol_nl
- else
- fn_script_log_pass "${logentry}"
- fn_print_ok_eol_nl
- fi
-
- # mac os needs to be checked not all mods support mac os
- if [ -n "${moddylib}" ]; then
- # modify the liblist.gam file to initialize metamod
- logentry="sed replace (dlls\\${moddylib}) ${modinstalldir}/liblist.gam"
- echo -en "modifying gamedll_osx in liblist.gam..."
- rpldylib="s/dlls\/${moddylib}/addons\/metamod\/dlls\/metamod.dylib/g"
- sed -i $rpldylib "${modinstalldir}/liblist.gam"
- grep -q "addons/metamod/dlls/metamod.dylib" "${modinstalldir}/liblist.gam"
- exitcode=$?
- # if replacement back didn't happen, error out.
- if [ "${exitcode}" != 0 ]; then
- fn_script_log_fatal "${logentry}"
- fn_print_fail_eol_nl
- else
- fn_script_log_pass ${logentry}
- fn_print_ok_eol_nl
- fi
- fi
- fi
-}
-
-fn_mod_remove_liblist_gam_file() {
-
- fn_mod_liblist_gam_filenames
-
- if [ -f "${modinstalldir}/liblist.gam" ]; then
- # modify the liblist.gam file back to defaults
- logentry="sed replace (addons/metamod/dlls/metamod.dll) ${modinstalldir}/liblist.gam"
- echo -en "modifying gamedll in liblist.gam..."
- rpldll="s/addons\/metamod\/dlls\/metamod.dll/dlls\\\\${moddll}/g"
- sed -i $rpldll "${modinstalldir}/liblist.gam"
- grep -q "${moddll}" "${modinstalldir}/liblist.gam"
- exitcode=$?
- # if replacement back didn't happen, error out.
- if [ "${exitcode}" != 0 ]; then
- fn_script_log_fatal "${logentry}"
- fn_print_fail_eol_nl
- else
- fn_script_log_pass ${logentry}
- fn_print_ok_eol_nl
- fi
-
- # modify the liblist.gam file back to defaults
- logentry="sed replace (addons/metamod/dlls/metamod.so) ${modinstalldir}/liblist.gam"
- echo -en "modifying gamedll_linux in liblist.gam..."
- rplso="s/addons\/metamod\/dlls\/metamod.so/dlls\/${modso}/g"
- sed -i $rplso "${modinstalldir}/liblist.gam"
- grep -q "${modso}" "${modinstalldir}/liblist.gam"
- exitcode=$?
- # if replacement back didn't happen, error out
- if [ "${exitcode}" != 0 ]; then
- fn_script_log_fatal "${logentry}"
- fn_print_fail_eol_nl
- else
- fn_script_log_pass ${logentry}
- fn_print_ok_eol_nl
- fi
-
- # mac os needs to be checked not all mods support mac os
- if [ -n "${moddylib}" ]; then
- # modify the liblist.gam file back to defaults
- logentry="sed replace (addons/metamod/dlls/metamod.dylib) ${modinstalldir}/liblist.gam"
- echo -en "modifying gamedll_osx in liblist.gam..."
- rpldylib="s/addons\/metamod\/dlls\/metamod.dylib/dlls\/${moddylib}/g"
- sed -i $rpldylib "${modinstalldir}/liblist.gam"
- grep -q "${moddylib}" "${modinstalldir}/liblist.gam"
- # if replacement back didn't happen, error out.
- exitcode=$?
- if [ "${exitcode}" != 0 ]; then
- fn_script_log_fatal "${logentry}"
- fn_print_fail_eol_nl
- else
- fn_script_log_pass ${logentry}
- fn_print_ok_eol_nl
- fi
- fi
- fi
-}
-
-fn_mod_install_amxmodx_file() {
- # does plugins.ini exist?
- if [ -f "${modinstalldir}/addons/metamod/plugins.ini" ]; then
- # since it does exist, is the entry already in plugins.ini
- logentry="line (linux addons/amxmodx/dlls/amxmodx_mm_i386.so) inserted into ${modinstalldir}/addons/metamod/plugins.ini"
- echo -en "adding amxmodx_mm_i386.so in plugins.ini..."
- grep -q "amxmodx_mm_i386.so" "${modinstalldir}/addons/metamod/plugins.ini"
- exitcode=$?
- if [ "${exitcode}" != 0 ]; then
- # file exists but the entry does not, let's add it
- echo "linux addons/amxmodx/dlls/amxmodx_mm_i386.so" >> "${modinstalldir}/addons/metamod/plugins.ini"
- exitcode=$?
- if [ "${exitcode}" != 0 ]; then
- fn_script_log_fatal "${logentry}"
- fn_print_fail_eol_nl
- else
- fn_script_log_pass ${logentry}
- fn_print_ok_eol_nl
- fi
- fi
- else
- # create new file and add the mod to it
- echo "linux addons/amxmodx/dlls/amxmodx_mm_i386.so" > "${modinstalldir}/addons/metamod/plugins.ini"
- exitcode=$?
- if [ "${exitcode}" != 0 ]; then
- fn_script_log_fatal "${logentry}"
- fn_print_fail_eol_nl
- core_exit.sh
- else
- fn_script_log_pass ${logentry}
- fn_print_ok_eol_nl
- fi
- fi
-}
-
-fn_mod_remove_amxmodx_file() {
- if [ -f "${modinstalldir}/addons/metamod/plugins.ini" ]; then
- # since it does exist, is the entry already in plugins.ini
- logentry="line (linux addons/amxmodx/dlls/amxmodx_mm_i386.so) removed from ${modinstalldir}/addons/metamod/plugins.ini"
- echo -en "removing amxmodx_mm_i386.so in plugins.ini..."
- grep -q "linux addons/amxmodx/dlls/amxmodx_mm_i386.so" "${modinstalldir}/addons/metamod/plugins.ini"
- # iIs it found? If so remove it and clean up
- exitcode=$?
- if [ "${exitcode}" == 0 ]; then
- # delete the line we inserted
- sed -i '/linux addons\/amxmodx\/dlls\/amxmodx_mm_i386.so/d' "${modinstalldir}/addons/metamod/plugins.ini"
- # remove empty lines
- sed -i '/^$/d' "${modinstalldir}/addons/metamod/plugins.ini"
- exitcode=$?
- if [ "${exitcode}" != 0 ]; then
- fn_script_log_fatal "${logentry}"
- fn_print_fail_eol_nl
- else
- fn_script_log_pass ${logentry}
- fn_print_ok_eol_nl
- fi
-
- # if file is empty, remove it.
- if [ -f "${modinstalldir}/addons/metamod/plugins.ini" ]; then
- rm -f "${modinstalldir}/addons/metamod/plugins.ini"
- fn_script_log_pass "file removed ${modinstalldir}/addons/metamod/plugins.ini because it was empty"
- fi
- fi
- fi
-}
-
-## Database initialisation.
-
-mods_list.sh
-fn_mods_available
diff --git a/lgsm/functions/mods_list.sh b/lgsm/functions/mods_list.sh
deleted file mode 100644
index a83b7e3032..0000000000
--- a/lgsm/functions/mods_list.sh
+++ /dev/null
@@ -1,209 +0,0 @@
-#!/bin/bash
-# LinuxGSM mods_list.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Lists and defines available mods for LinuxGSM supported servers; works along with mods_core.sh.
-# Usage: To add a mod, you need to add an array variable following the guide to set proper values;
-# Usage: Then add this array to the mods_global_array.
-# Usage: If needed, you can scrape the download URL first.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-# Get a proper URL for mods that don't provide a good one (optional)
-fn_script_log_info "Retrieving latest mods URLs"
-
-# Metamod (Half-life 1 Classic Engine)
-metamodversion="1.21.1-am"
-metamodlatestfile="metamod-${metamodversion}.zip"
-metamoddownloadurl="https://www.amxmodx.org/release/${metamodlatestfile}"
-metamodurl="${metamoddownloadurl}"
-# AMX Mod X: Base
-amxxbaseversion="1.8.2"
-amxxbasemod="base"
-amxxbaselatestfile="amxmodx-${amxxbaseversion}-${amxxbasemod}-linux.tar.gz"
-amxxbasedownloadurl="https://www.amxmodx.org/release/${amxxbaselatestfile}"
-amxxbaseurl="${amxxbasedownloadurl}"
-# AMX Mod X: Counter-Strike
-amxxcsversion="1.8.2"
-amxxcsmod="cstrike"
-amxxcslatestfile="amxmodx-${amxxbaseversion}-${amxxcsmod}-linux.tar.gz"
-amxxcsdownloadurl="https://www.amxmodx.org/release/${amxxcslatestfile}"
-amxxcsurl="${amxxcsdownloadurl}"
-# AMX Mod X: Day of Defeat
-amxxdodversion="1.8.2"
-amxxdodmod="dod"
-amxxdodlatestfile="amxmodx-${amxxdodversion}-${amxxdodmod}-linux.tar.gz"
-amxxdoddownloadurl="https://www.amxmodx.org/release/${amxxdodlatestfile}"
-amxxdodurl="${amxxdoddownloadurl}"
-# AMX Mod X: Team Fortress Classic
-amxxtfcversion="1.8.2"
-amxxtfcmod="tfc"
-amxxtfclatestfile="amxmodx-${amxxtfcversion}-${amxxtfcmod}-linux.tar.gz"
-amxxtfcdownloadurl="https://www.amxmodx.org/release/${amxxtfclatestfile}"
-amxxtfcurl="${amxxtfcdownloadurl}"
-# AMX Mod X: Natural Selection
-amxxnsversion="1.8.2"
-amxxnsmod="ns"
-amxxnslatestfile="amxmodx-${amxxnsversion}-${amxxnsmod}-linux.tar.gz"
-amxxnsdownloadurl="https://www.amxmodx.org/release/${amxxnslatestfile}"
-amxxnsurl="${amxxnsdownloadurl}"
-# AMX Mod X: The Specialists
-amxxtsversion="1.8.2"
-amxxtsmod="ts"
-amxxtslatestfile="amxmodx-${amxxtsversion}-${amxxtsmod}-linux.tar.gz"
-amxxtsdownloadurl="https://www.amxmodx.org/release/${amxxtslatestfile}"
-amxxtsurl="${amxxtsdownloadurl}"
-# Metamod:Source
-metamodsourceversion="1.11"
-metamodsourcescrapeurl="https://mms.alliedmods.net/mmsdrop/${metamodsourceversion}/mmsource-latest-linux"
-metamodsourcelatestfile=$(wget "${metamodsourcescrapeurl}" -q -O -)
-metamodsourcedownloadurl="https://www.metamodsource.net/latest.php?os=linux&version=${metamodsourceversion}"
-metamodsourceurl="${metamodsourcedownloadurl}"
-# Sourcemod
-sourcemodversion="1.11"
-sourcemodscrapeurl="https://sm.alliedmods.net/smdrop/${sourcemodversion}/sourcemod-latest-linux"
-sourcemodlatestfile=$(wget "${sourcemodscrapeurl}" -q -O -)
-sourcemoddownloadurl="https://www.sourcemod.net/latest.php?os=linux&version=${sourcemodversion}"
-sourcemodurl="${sourcemoddownloadurl}"
-# Steamworks
-steamworksscrapeurl="https://users.alliedmods.net/~kyles/builds/SteamWorks"
-steamworkslatestfile=$(curl --connect-timeout 10 -sL ${steamworksscrapeurl} | grep -m 1 linux | cut -d '"' -f 4)
-steamworksdownloadurl="${steamworksscrapeurl}/${steamworkslatestfile}"
-steamworksurl="${steamworksdownloadurl}"
-# CS:GO Mods
-get5lastbuild=$(curl --connect-timeout 10 -sL https://api.github.com/repos/splewis/get5/releases/latest | jq '.assets[] |select(.browser_download_url | endswith(".tar.gz"))')
-get5latestfile=$(echo -e "${get5lastbuild}" | jq -r '.name')
-get5latestfilelink=$(echo -e "${get5lastbuild}" | jq -r '.browser_download_url')
-csgopracticelatest=$(curl --connect-timeout 10 -sL https://api.github.com/repos/splewis/csgo-practice-mode/releases/latest | jq '.assets[]')
-csgopracticelatestfile=$(echo -e "${csgopracticelatest}" | jq -r '.name')
-csgopracticelatestlink=$(echo -e "${csgopracticelatest}" | jq -r '.browser_download_url')
-csgopuglatest=$(curl --connect-timeout 10 -sL https://api.github.com/repos/splewis/csgo-pug-setup/releases/latest | jq '.assets[]')
-csgopuglatestfile=$(echo -e "${csgopuglatest}" | jq -r '.name')
-csgopuglatestlink=$(echo -e "${csgopuglatest}" | jq -r '.browser_download_url')
-gokzlatestversion=$(curl --connect-timeout 10 -s https://api.github.com/repos/KZGlobalTeam/gokz/releases/latest | grep "tag_name" | cut -d : -f 2,3 | sed -E 's/.*"([^"]+)".*/\1/')
-gokzlatestfile="GOKZ-v${gokzlatestversion}.zip"
-gokzlatestlink="https://github.com/KZGlobalTeam/gokz/releases/download/${gokzlatestversion}/${gokzlatestfile}"
-movementapilatestversion=$(curl --connect-timeout 10 -s https://api.github.com/repos/danzayau/MovementAPI/releases/latest | grep "tag_name" | cut -d : -f 2,3 | sed -E 's/.*"([^"]+)".*/\1/')
-movementapilatestfile="MovementAPI-v${movementapilatestversion}.zip"
-movementapilatestlink="https://github.com/danzayau/MovementAPI/releases/download/${movementapilatestversion}/${movementapilatestfile}"
-
-# Rust
-carbonrustapilatestfile="Carbon.Linux.Release.tar.gz"
-carbonrustlatestlink=$(curl --connect-timeout 10 -sL https://api.github.com/repos/CarbonCommunity/Carbon.Core/releases/tags/production_build | jq -r '.assets[]|select(.name == "Carbon.Linux.Release.tar.gz") | .browser_download_url')
-
-# Oxide
-oxiderustlatestlink=$(curl --connect-timeout 10 -sL https://api.github.com/repos/OxideMod/Oxide.Rust/releases/latest | jq -r '.assets[]|select(.browser_download_url | contains("linux")) | .browser_download_url')
-oxidehurtworldlatestlink=$(curl --connect-timeout 10 -sL https://api.github.com/repos/OxideMod/Oxide.Hurtworld/releases/latest | jq -r '.assets[].browser_download_url')
-oxidesdtdlatestlink=$(curl --connect-timeout 10 -sL https://api.github.com/repos/OxideMod/Oxide.SevenDaysToDie/releases/latest | jq -r '.assets[]|select(.browser_download_url | contains("linux")) | .browser_download_url')
-# Valheim Plus
-valeimpluslatestlink=$(curl --connect-timeout 10 -sL https://api.github.com/repos/valheimPlus/ValheimPlus/releases/latest | jq -r '.assets[]|select(.browser_download_url | contains("UnixServer.tar.gz")) | .browser_download_url')
-# Valheim BepInEx
-bepinexvhlatestlink=$(curl --connect-timeout 10 -sL "https://valheim.thunderstore.io/api/experimental/package/denikson/BepInExPack_Valheim/" -H "accept: application/json" | jq -r '.latest.download_url')
-
-# Define mods information (required)
-
-# Separator name
-modseparator="MOD"
-
-# REQUIRED: mod_info_name=( MOD "modcommand" "Pretty Name" "URL" "filename" "modsubdirs" "LowercaseOn/Off" "/files/to/keep;" "/install/path" "ENGINES" "GAMES" "NOTGAMES" "AUTHOR_URL" "Short Description" )
-# Example 1) Well made mod: mod_info_name=( MOD "awesomemod" "This is an Awesome Mod" "https://awesomemod.com/latest.zip" "awesomemod.zip" "0" "LowercaseOff" "OVERWRITE" "${systemdir}/addons" "source;unity3d;" "GAMES" "NOTGAMES" "https://awesomemod.com/" "This mod knows that 42 is the answer" )
-# Example 2) Poorly made mod: mod_info_name=( MOD "stupidmod" "This is a stupid mod" "${crappymodurl}" "StupidMod.zip" "2" "LowercaseOn" "cfg;data/crappymod;" "${systemdir}" "source;" "GAMES" "Garry's mod;Counter-Strike: Source;" "This mod is dumber than dumb" )
-# None of those values can be empty
-# index | Usage
-# [0] | MOD: separator, all mods must begin with it
-# [1] | "modcommand": the LGSM name and command to install the mod (must be unique and lowercase)
-# [2] | "Pretty Name": the common name people use to call the mod that will be displayed to the user
-# [3] | "URL": link to the mod archive file; can be a variable previously defined while scraping a URL
-# [4] | "filename": the output filename
-# [5] | "modsubdirs": in how many subdirectories is the mod (none is 0) (not used at release, but could be in the future)
-# [6] | "LowercaseOn/Off": LowercaseOff or LowercaseOn: enable/disable converting extracted files and directories to lowercase (some games require it)
-# [7] | "modinstalldir": the directory in which to install the mode (use LGSM dir variables such as ${systemdir})
-# [8] | "/files/to/keep;", files & directories that should not be overwritten upon update, separated and ended with a semicolon; you can also use "OVERWRITE" value to ignore the value or "NOUPDATE" to disallow updating; for files to keep upon uninstall, see fn_mod_tidy_files_list from mods_core.sh
-# [9] | "Supported Engines;": list them according to LGSM ${engine} variables, separated and ended with a semicolon, or use ENGINES to ignore the value
-# [10] | "Supported Games;": list them according to LGSM ${gamename} variables, separated and ended with a semicolon, or use GAMES to ignore the value
-# [11] | "Unsupported Games;": list them according to LGSM ${gamename} variables, separated and ended with a semicolon, or use NOTGAMES to ignore the value (useful to exclude a game when using Supported Engines)
-# [12] | "AUTHOR_URL" is the author's website, displayed to the user when chosing mods to install
-# [13] | "Short Description" a description showed to the user upon installation/removal
-
-# Half-life 1 Engine Mods
-mod_info_metamod=(MOD "metamod" "Metamod" "${metamodurl}" "${metamodlatestfile}" "0" "LowercaseOff" "${systemdir}" "addons/metamod/plugins.ini;" "ENGINES" "Counter-Strike 1.6;Day of Defeat;Team Fortress Classic;Natural Selection;The Specialists;Half-Life: Deathmatch;" "NOTGAMES" "https://github.com/alliedmodders/metamod-hl1" "Plugins Framework")
-mod_info_base_amxx=(MOD "amxmodx" "AMX Mod X: Base" "${amxxbaseurl}" "${amxxbaselatestfile}" "0" "LowercaseOff" "${systemdir}" "addons/amxmodx/configs;" "ENGINES" "Counter-Strike 1.6;Day of Defeat;Team Fortress Classic;Natural Selection;The Specialists;Half-Life: Deathmatch;" "NOTGAMES" "https://www.amxmodx.org" "Admin Features (requires Metamod)")
-
-# CS 1.6 (HL1) Engine Mods
-mod_info_cs_amxx=(MOD "amxmodxcs" "AMX Mod X: Counter-Strike" "${amxxcsurl}" "${amxxcslatestfile}" "0" "LowercaseOff" "${systemdir}" "addons/amxmodx/configs;" "ENGINES" "Counter-Strike 1.6;" "NOTGAMES" "https://www.amxmodx.org" "Admin Features (requires Metamod & AMX Mod X: Base)")
-
-# DOD (HL1) Engine Mods
-mod_info_dod_amxx=(MOD "amxmodxdod" "AMX Mod X: Day of Defeat" "${amxxdodurl}" "${amxxdodlatestfile}" "0" "LowercaseOff" "${systemdir}" "addons/amxmodx/configs;" "ENGINES" "Day of Defeat;" "NOTGAMES" "https://www.amxmodx.org" "Admin Features (requires Metamod & AMX Mod X: Base)")
-
-# TFC (HL1) Engine Mods
-mod_info_tfc_amxx=(MOD "amxmodxtfc" "AMX Mod X: Team Fortress Classic" "${amxxtfcurl}" "${amxxtfclatestfile}" "0" "LowercaseOff" "${systemdir}" "addons/amxmodx/configs;" "ENGINES" "Team Fortress Classic;" "NOTGAMES" "https://www.amxmodx.org" "Admin Features (requires Metamod & AMX Mod X: Base)")
-
-# NS (Natural Selection) (HL1) Engine Mods
-mod_info_ns_amxx=(MOD "amxmodxns" "AMX Mod X: Natural Selection" "${amxxnsurl}" "${amxxnslatestfile}" "0" "LowercaseOff" "${systemdir}" "addons/amxmodx/configs;" "ENGINES" "Natural Selection;" "NOTGAMES" "https://www.amxmodx.org" "Admin Features (requires Metamod & AMX Mod X: Base)")
-
-# TS (The Specialists) (HL1) Engine Mods
-mod_info_ts_amxx=(MOD "amxmodxts" "AMX Mod X: The Specialists" "${amxxtsurl}" "${amxxtslatestfile}" "0" "LowercaseOff" "${systemdir}" "addons/amxmodx/configs;" "ENGINES" "The Specialists;" "NOTGAMES" "https://www.amxmodx.org" "Admin Features (requires Metamod & AMX Mod X: Base)")
-
-# Source mods
-mod_info_metamodsource=(MOD "metamodsource" "Metamod: Source" "${metamodsourceurl}" "${metamodsourcelatestfile}" "0" "LowercaseOff" "${systemdir}" "addons/metamod/metaplugins.ini;" "source;" "GAMES" "NOTGAMES" "https://www.sourcemm.net" "Plugins Framework")
-mod_info_sourcemod=(MOD "sourcemod" "SourceMod" "${sourcemodurl}" "${sourcemodlatestfile}" "0" "LowercaseOff" "${systemdir}" "cfg;addons/sourcemod/configs;" "source;" "GAMES" "NOTGAMES" "http://www.sourcemod.net" "Admin Features (requires Metamod: Source)")
-mod_info_steamworks=(MOD "steamworks" "SteamWorks" "${steamworksurl}" "${steamworkslatestfile}" "0" "LowercaseOff" "${systemdir}" "OVERWRITE" "ENGINES" "Counter-Strike: Global Offensive;" "NOTGAMES" "https://github.com/KyleSanderson/SteamWorks" "Exposing SteamWorks functions to SourcePawn")
-mod_info_stripper=(MOD "stripper" "Stripper Source" "http://www.bailopan.net/stripper/snapshots/1.2/stripper-1.2.2-git129-linux.tar.gz" "stripper-1.2.2-git129-linux.tar.gz" "0" "LowercaseOff" "${systemdir}" "addons/stripper/maps;" "ENGINES" "Counter-Strike: Global Offensive;Counter-Strike: Source;Day of Defeat: Source;Half Life: Deathmatch;Half Life 2: Deathmatch;Insurgency;Left 4 Dead;Left 4 Dead 2;Nuclear Dawn;Team Fortress 2;" "NOTGAMES" "http://www.bailopan.net/stripper/" "Add or remove objects from map (requires MetaMod)")
-
-# CS:GO Mods
-mod_info_gokz=(MOD "gokz" "GOKZ" "${gokzlatestlink}" "${gokzlatestfile}" "0" "LowercaseOff" "${systemdir}" "cfg;addons/sourcemod/configs;" "ENGINES" "Counter-Strike: Global Offensive;" "NOTGAMES" "https://github.com/KZGlobalTeam/gokz" "GOKZ ${gokzlatestversion} - Implements the KZ game mode (requires SourceMod and MetaMod)")
-mod_info_ttt=(MOD "ttt" "Trouble in Terrorist Town" "https://csgottt.com/downloads/ttt-latest-dev-${sourcemodversion}.zip" "ttt-latest.zip" "0" "LowercaseOff" "${systemdir}" "cfg;addons/sourcemod/configs;" "ENGINES" "Counter-Strike: Global Offensive;" "NOTGAMES" "https://github.com/Bara/TroubleinTerroristTown" "Implements the TTT game mode (requires SourceMod and MetaMod)")
-mod_info_get5=(MOD "get5" "Get 5" "${get5latestfilelink}" "${get5latestfile}" "0" "LowercaseOff" "${systemdir}" "cfg;addons/sourcemod/configs;" "ENGINES" "Counter-Strike: Global Offensive;" "NOTGAMES" "https://github.com/splewis/get5" "Plugin for competitive matches/scrims (requires SourceMod and MetaMod)")
-mod_info_prac=(MOD "prac" "csgo practice mode" "${csgopracticelatestlink}" "${csgopracticelatestfile}" "0" "LowercaseOff" "${systemdir}" "cfg;addons/sourcemod/configs;" "ENGINES" "Counter-Strike: Global Offensive;" "NOTGAMES" "https://github.com/splewis/csgo-practice-mode" "Practice Mode is a sourcemod plugin for helping players/teams run practices.")
-mod_info_pug=(MOD "pug" "PUG" "${csgopuglatestlink}" "${csgopuglatestfile}" "0" "LowercaseOff" "${systemdir}" "cfg;addons/sourcemod/configs;" "ENGINES" "Counter-Strike: Global Offensive;" "NOTGAMES" "https://github.com/splewis/csgo-pug-setup" "plugin for setting up private pug/10man games")
-mod_info_dhook=(MOD "dhook" "dhook" "https://forums.alliedmods.net/attachment.php?attachmentid=190123&d=1625050030" "dhooks-2.2.0d17.zip" "0" "LowercaseOff" "${systemdir}" "cfg;addons/sourcemod/configs;" "ENGINES" "Counter-Strike: Global Offensive;" "NOTGAMES" "https://forums.alliedmods.net/showpost.php?p=2588686&postcount=589" "DHooks 2.2.0 - Required for GOKZ")
-mod_info_movement=(MOD "movementapi" "movementapi" "${movementapilatestlink}" "${movementapilatestfile}" "0" "LowercaseOff" "${systemdir}" "cfg;addons/sourcemod/configs;" "ENGINES" "Counter-Strike: Global Offensive;" "NOTGAMES" "https://github.com/danzayau/MovementAPI" "Movement API ${movementapilatestversion} - Required for GOKZ")
-mod_info_cleaner=(MOD "cleaner" "cleaner" "https://github.com/e54385991/console-cleaner/archive/refs/heads/master.zip" "console-cleaner.zip" "0" "LowercaseOff" "${systemdir}" "cfg;addons/sourcemod/configs;" "ENGINES" "Counter-Strike: Global Offensive;" "NOTGAMES" "https://github.com/e54385991/console-cleaner" "Console Cleaner - Optional for GOKZ")
-
-# Garry's Mod Addons
-mod_info_ulib=(MOD "ulib" "ULib" "https://codeload.github.com/TeamUlysses/ulib/zip/master" "ulib-master.zip" "0" "LowercaseOff" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "http://ulyssesmod.net" "Complete Framework")
-mod_info_ulx=(MOD "ulx" "ULX" "https://codeload.github.com/TeamUlysses/ulx/zip/master" "ulx-master.zip" "0" "LowercaseOff" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "http://ulyssesmod.net" "Admin Panel (requires ULib)")
-mod_info_utime=(MOD "utime" "UTime" "https://github.com/TeamUlysses/utime/archive/master.zip" "utime-master.zip" "0" "LowercaseOff" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "http://ulyssesmod.net" "Keep track of players play time")
-mod_info_uclip=(MOD "uclip" "UClip" "https://github.com/TeamUlysses/uclip/archive/master.zip" "uclip-master.zip" "0" "LowercaseOff" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "http://ulyssesmod.net" "An alternative to noclip")
-mod_info_acf=(MOD "acf" "Armoured Combat Framework" "https://github.com/nrlulz/ACF/archive/master.zip" "acf-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "acf-master/lua/acf/shared/guns;" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/nrlulz/ACF" "Realistic Wepons & Engines")
-mod_info_acf_missiles=(MOD "acfmissiles" "ACF Missiles" "https://github.com/Bubbus/ACF-Missiles/archive/master.zip" "acf-missiles-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/Bubbus/ACF-Missiles" "More missiles for ACF")
-mod_info_advdupe2=(MOD "advdupe2" "Advanced Duplicator 2" "https://github.com/wiremod/advdupe2/archive/master.zip" "advdupe2-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "http://www.wiremod.com" "Save your constructions. Second version")
-mod_info_pac3=(MOD "pac3" "PAC3" "https://github.com/CapsAdmin/pac3/archive/master.zip" "pac3-master.zip" "0" "LowercaseOff" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/CapsAdmin/pac3" "Advanced player model customization")
-mod_info_wiremod=(MOD "wiremod" "Wiremod" "https://github.com/wiremod/wire/archive/master.zip" "wire-master.zip" "0" "LowercaseOff" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/wiremod/wire" "Base Wiremod Addon")
-mod_info_wiremodextras=(MOD "wiremod-extras" "Wiremod Extras" "https://github.com/wiremod/wire-extras/archive/master.zip" "wire-extras-master.zip" "0" "LowercaseOff" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/wiremod/wire-extras/" "Addition to Wiremod, Extra Content")
-mod_info_advduplicator=(MOD "advdupe1" "Advanced Duplicator 1" "https://github.com/wiremod/advduplicator/archive/master.zip" "advduplicator-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/wiremod/advduplicator" "Save your constructions. First version")
-mod_info_trackassemblytool=(MOD "trackassemblytool" "Track Assembly Tool" "https://github.com/dvdvideo1234/trackassemblytool/archive/master.zip" "trackassemblytool-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/dvdvideo1234/TrackAssemblyTool" "Assembles segmented track. Supports wire")
-mod_info_physpropertiesadv=(MOD "physpropertiesadv" "Phys Properties Adv" "https://github.com/dvdvideo1234/physpropertiesadv/archive/master.zip" "physpropertiesadv-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/dvdvideo1234/PhysPropertiesAdv" "Advanced configurable properties")
-mod_info_controlsystemse2=(MOD "controlsystemse2" "Control Systems E2" "https://github.com/dvdvideo1234/controlsystemse2/archive/master.zip" "controlsystemse2-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/dvdvideo1234/ControlSystemsE2" "PID controllers and fast traces for E2. Minor included in wire-extas")
-mod_info_e2pistontiming=(MOD "e2pistontiming" "E2 Piston Timing" "https://github.com/dvdvideo1234/e2pistontiming/archive/master.zip" "e2pistontiming-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/dvdvideo1234/E2PistonTiming" "Routine driven piston engine timings for E2")
-mod_info_propcannontool=(MOD "propcannontool" "Prop Cannon Tool" "https://github.com/dvdvideo1234/propcannontool/archive/master.zip" "propcannontool-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/dvdvideo1234/PropCannonTool" "Cannon entity that can fire props. Supports wire")
-mod_info_gearassemblytool=(MOD "gearassemblytool" "Gear Assembly Tool" "https://github.com/dvdvideo1234/gearassemblytool/archive/master.zip" "gearassemblytool-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/dvdvideo1234/GearAssemblyTool" "Assembles segmented gearbox")
-mod_info_spinnertool=(MOD "spinnertool" "Spinner Tool" "https://github.com/dvdvideo1234/spinnertool/archive/master.zip" "spinnertool-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/dvdvideo1234/SpinnerTool" "Torque lever controlled spinner. Supports wire")
-mod_info_surfacefrictiontool=(MOD "surfacefrictiontool" "Surface Friction Tool" "https://github.com/dvdvideo1234/surfacefrictiontool/archive/master.zip" "surfacefrictiontool-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/dvdvideo1234/SurfaceFrictionTool" "Controls the surface friction of a prop")
-mod_info_magneticdipole=(MOD "magneticdipole" "Magnetic Dipole" "https://github.com/dvdvideo1234/magneticdipole/archive/master.zip" "magneticdipole-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/dvdvideo1234/MagneticDipole" "Magnet entity that runs forces on its poles. Supports wire")
-mod_info_environmentorganizer=(MOD "environmentorganizer" "Environment Organizer" "https://github.com/dvdvideo1234/environmentorganizer/archive/master.zip" "environmentorganizer-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/dvdvideo1234/EnvironmentOrganizer" "Installs routines designed for server settings adjustment")
-mod_info_precision_alignment=(MOD "precision-alignment" "Precision Alignment" "https://github.com/Mista-Tea/precision-alignment/archive/master.zip" "precision-alignment-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/Mista-Tea/precision-alignment" "Creates precise constraints and aligments")
-mod_info_improved_stacker=(MOD "improved-stacker" "Improved Stacker" "https://github.com/Mista-Tea/improved-stacker/archive/master.zip" "improved-stacker-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/Mista-Tea/improved-stacker" "Stacks entities in the direction chosen")
-mod_info_improved_weight=(MOD "improved-weight" "Improved Weight" "https://github.com/Mista-Tea/improved-weight/archive/master.zip" "improved-weight-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/Mista-Tea/improved-weight" "Weight tool but with more features")
-mod_info_improved_antinoclip=(MOD "improved-antinoclip" "Improved Antinoclip" "https://github.com/Mista-Tea/improved-antinoclip/archive/master.zip" "improved-antinoclip-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/Mista-Tea/improved-antinoclip" "Controls clipping trough an object")
-mod_info_darkrp=(MOD "darkrp" "DarkRP" "https://github.com/FPtje/DarkRP/archive/master.zip" "darkrp-master.zip" "0" "LowercaseOn" "${systemdir}/gamemodes" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "http://darkrp.com" "Most popular gamemode")
-mod_info_darkrpmodification=(MOD "darkrpmodification" "DarkRP Modification" "https://github.com/FPtje/darkrpmodification/archive/master.zip" "darkrpmodification-master.zip" "0" "LowercaseOff" "${systemdir}/addons" "NOUPDATE" "ENGINES" "Garry's Mod;" "NOTGAMES" "http://darkrp.com" "Customize DarkRP settings")
-mod_info_laserstool=(MOD "laserstool" "Laser STool" "https://github.com/dvdvideo1234/laserstool/archive/main.zip" "laserstool-main.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/dvdvideo1234/LaserSTool" "Scripted tool that spawns laser entities, simulates light rays and even kill players")
-
-# Rust
-mod_info_rustcarbon=(MOD "rustcarbon" "Carbon for Rust" "${carbonrustlatestlink}" "Carbon.Linux.Release.tar.gz" "0" "LowercaseOff" "${systemdir}" "OVERWRITE" "ENGINES" "Rust;" "NOTGAMES" "carbonmod.gg" "Allows for the use of both plugins and harmony mods")
-
-# Oxidemod
-mod_info_rustoxide=(MOD "rustoxide" "Oxide for Rust" "${oxiderustlatestlink}" "Oxide.Rust-linux.zip" "0" "LowercaseOff" "${systemdir}" "OVERWRITE" "ENGINES" "Rust;" "NOTGAMES" "https://umod.org/games/rust" "Allows for the use of plugins")
-mod_info_hwoxide=(MOD "hwoxide" "Oxide for Hurtworld" "${oxidehurtworldlatestlink}" "Oxide.Hurtworld.zip" "0" "LowercaseOff" "${systemdir}" "OVERWRITE" "ENGINES" "Hurtworld;" "NOTGAMES" "https://umod.org/games/hurtworld" "Allows for the use of plugins")
-mod_info_sdtdoxide=(MOD "sdtdoxide" "Oxide for 7 Days To Die" "${oxidesdtdlatestlink}" "Oxide.SevenDaysToDie.zip" "0" "LowercaseOff" "${systemdir}" "OVERWRITE" "ENGINES" "7 Days To Die;" "NOTGAMES" "https://umod.org/games/7-days-to-die" "Allows for the use of plugins")
-
-# ValheimPlus
-mod_info_valheimplus=(MOD "valheimplus" "Valheim PLUS" "${valeimpluslatestlink}" "ValheimPlus.tar.gz" "0" "LowercaseOff" "${systemdir}" "OVERWRITE" "ENGINES" "Valheim;" "NOTGAMES" "https://github.com/valheimPlus/ValheimPlus" "Mod to improve Valheim gameplay")
-
-# BepInEx Valheim
-mod_info_bepinexvh=(MOD "bepinexvh" "BepInEx Valheim" "${bepinexvhlatestlink}" "denikson-BepInExPack_Valheim.zip" "0" "LowercaseOff" "${systemdir}" "OVERWRITE" "ENGINES" "Valheim;" "NOTGAMES" "https://valheim.thunderstore.io/package/denikson/BepInExPack_Valheim/" "Unity / XNA game patcher and plugin framework")
-
-# REQUIRED: Set all mods info into the global array
-mods_global_array=("${mod_info_metamod[@]}" "${mod_info_base_amxx[@]}" "${mod_info_cs_amxx[@]}" "${mod_info_dod_amxx[@]}" "${mod_info_tfc_amxx[@]}" "${mod_info_ns_amxx[@]}" "${mod_info_ts_amxx[@]}" "${mod_info_metamodsource[@]}" "${mod_info_sourcemod[@]}" "${mod_info_steamworks[@]}" "${mod_info_gokz[@]}" "${mod_info_ttt[@]}" "${mod_info_get5[@]}" "${mod_info_prac[@]}" "${mod_info_pug[@]}" "${mod_info_dhook[@]}" "${mod_info_movement[@]}" "${mod_info_cleaner[@]}" "${mod_info_ulib[@]}" "${mod_info_ulx[@]}" "${mod_info_utime[@]}" "${mod_info_uclip[@]}" "${mod_info_acf[@]}" "${mod_info_acf_missiles[@]}" "${mod_info_acf_sweps[@]}" "${mod_info_advdupe2[@]}" "${mod_info_pac3[@]}" "${mod_info_wiremod[@]}" "${mod_info_wiremodextras[@]}" "${mod_info_darkrp[@]}" "${mod_info_darkrpmodification[@]}" "${mod_info_rustcarbon[@]}" "${mod_info_rustoxide[@]}" "${mod_info_hwoxide[@]}" "${mod_info_sdtdoxide[@]}" "${mod_info_advduplicator[@]}" "${mod_info_trackassemblytool[@]}" "${mod_info_physpropertiesadv[@]}" "${mod_info_controlsystemse2[@]}" "${mod_info_e2pistontiming[@]}" "${mod_info_propcannontool[@]}" "${mod_info_gearassemblytool[@]}" "${mod_info_spinnertool[@]}" "${mod_info_surfacefrictiontool[@]}" "${mod_info_magneticdipole[@]}" "${mod_info_environmentorganizer[@]}" "${mod_info_precision_alignment[@]}" "${mod_info_improved_stacker[@]}" "${mod_info_improved_weight[@]}" "${mod_info_improved_antinoclip[@]}" "${mod_info_laserstool[@]}" "${mod_info_valheimplus[@]}" "${mod_info_bepinexvh[@]}")
diff --git a/lgsm/functions/query_gamedig.sh b/lgsm/functions/query_gamedig.sh
deleted file mode 100644
index 344874011b..0000000000
--- a/lgsm/functions/query_gamedig.sh
+++ /dev/null
@@ -1,93 +0,0 @@
-#!/bin/bash
-# LinuxGSM query_gamedig.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Querys a gameserver using node-gamedig.
-# https://github.com/gamedig/node-gamedig
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-querystatus="2"
-# Check if gamedig and jq are installed.
-if [ "$(command -v gamedig 2> /dev/null)" ] && [ "$(command -v jq 2> /dev/null)" ]; then
-
- # will bypass query if server offline.
- check_status.sh
- if [ "${status}" != "0" ]; then
- # GameDig requires you use the voice port when querying.
- if [ "${querytype}" == "teamspeak3" ]; then
- queryport="${port}"
- fi
- # checks if query is working null = pass.
- gamedigcmd=$(echo -e "gamedig --type \"${querytype}\" --host \"${queryip}\" --query_port \"${queryport}\"|jq")
- gamedigraw=$(gamedig --type "${querytype}" --host "${queryip}" --query_port "${queryport}")
- querystatus=$(echo "${gamedigraw}" | jq '.error|length')
-
- if [ "${querystatus}" != "null" ]; then
- gamedigcmd=$(echo -e "gamedig --type \"${querytype}\" --host \"${queryip}\" --port \"${queryport}\"|jq")
- gamedigraw=$(gamedig --type "${querytype}" --host "${queryip}" --port "${queryport}")
- querystatus=$(echo "${gamedigraw}" | jq '.error|length')
- fi
-
- if [ "${querytype}" == "teamspeak3" ]; then
- fn_info_game_ts3
- fi
-
- # server name.
- gdname=$(echo "${gamedigraw}" | jq -re '.name')
- if [ "${gdname}" == "null" ]; then
- unset gdname
- fi
-
- # numplayers.
- if [ "${querytype}" == "minecraft" ]; then
- gdplayers=$(echo "${gamedigraw}" | jq -re '.players | length-1')
- elif [ "${querytype}" == "teamspeak3" ]; then
- gdplayers=$(echo "${gamedigraw}" | jq -re '.raw.virtualserver_clientsonline')
- else
- gdplayers=$(echo "${gamedigraw}" | jq -re '.players | length')
- fi
- if [ "${gdplayers}" == "null" ]; then
- unset gdplayers
- elif [ "${gdplayers}" == "[]" ] || [ "${gdplayers}" == "-1" ]; then
- gdplayers=0
- fi
-
- # maxplayers.
- gdmaxplayers=$(echo "${gamedigraw}" | jq -re '.maxplayers')
- if [ "${gdmaxplayers}" == "null" ]; then
- unset gdmaxplayers
- elif [ "${gdmaxplayers}" == "[]" ]; then
- gdmaxplayers=0
- fi
-
- # current map.
- gdmap=$(echo "${gamedigraw}" | jq -re '.map')
- if [ "${gdmap}" == "null" ]; then
- unset gdmap
- fi
-
- # current gamemode.
- gdgamemode=$(echo "${gamedigraw}" | jq -re '.raw.rules.GameMode_s')
- if [ "${gdgamemode}" == "null" ]; then
- unset gdgamemode
- fi
-
- # numbots.
- gdbots=$(echo "${gamedigraw}" | jq -re '.bots | length')
- if [ "${gdbots}" == "null" ] || [ "${gdbots}" == "0" ]; then
- unset gdbots
- fi
-
- # server version.
- if [ "${querytype}" == "teamspeak3" ]; then
- gdversion=$(echo "${gamedigraw}" | jq -re '.raw.virtualserver_version')
- else
- gdversion=$(echo "${gamedigraw}" | jq -re '.raw.version')
- fi
-
- if [ "${gdversion}" == "null" ] || [ "${gdversion}" == "0" ]; then
- unset gdversion
- fi
- fi
-fi
diff --git a/lgsm/functions/query_gsquery.py b/lgsm/functions/query_gsquery.py
deleted file mode 100644
index 62c92082e4..0000000000
--- a/lgsm/functions/query_gsquery.py
+++ /dev/null
@@ -1,151 +0,0 @@
-#! /usr/bin/env python3
-# -*- coding: utf-8 -*-
-# LinuxGSM query_gsquery.py function
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Allows querying of various game servers.
-
-import argparse
-import socket
-import sys
-
-engine_types=('protocol-valve','protocol-quake3','protocol-quake3','protocol-gamespy1','protocol-unreal2','ut3','minecraft','minecraftbe','jc2mp','mumbleping','soldat','teeworlds')
-
-class gsquery:
- server_response_timeout = 5
- default_buffer_length = 1024
- sourcequery=('protocol-valve','avalanche3.0','barotrauma','madness','quakelive','realvirtuality','refractor','source','goldsrc','spark','starbound','unity3d','unreal4','wurm')
- idtech2query=('protocol-quake3','idtech2','quake','iw2.0')
- idtech3query=('protocol-quake3','iw3.0','ioquake3','qfusion')
- minecraftquery=('minecraft','lwjgl2')
- minecraftbequery=('minecraftbe',)
- jc2mpquery=('jc2mp',)
- mumblequery=('mumbleping',)
- soldatquery=('soldat',)
- twquery=('teeworlds',)
- unrealquery=('protocol-gamespy1','unreal')
- unreal2query=('protocol-unreal2','unreal2')
- unreal3query=('ut3','unreal3')
-
- def __init__(self, arguments):
- self.argument = arguments
- #
- if self.argument.engine in self.sourcequery:
- self.query_prompt_string = b'\xFF\xFF\xFF\xFFTSource Engine Query\0'
- elif self.argument.engine in self.idtech2query:
- self.query_prompt_string = b'\xff\xff\xff\xffstatus\x00'
- elif self.argument.engine in self.idtech3query:
- self.query_prompt_string = b'\xff\xff\xff\xffgetstatus'
- elif self.argument.engine in self.jc2mpquery:
- self.query_prompt_string = b'\xFE\xFD\x09\x10\x20\x30\x40'
- elif self.argument.engine in self.minecraftquery:
- self.query_prompt_string = b'\xFE\xFD\x09\x3d\x54\x1f\x93'
- elif self.argument.engine in self.minecraftbequery:
- self.query_prompt_string = b'\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\x12\x34\x56\x78\x00\x00\x00\x00\x00\x00\x00\x00'
- elif self.argument.engine in self.mumblequery:
- self.query_prompt_string = b'\x00\x00\x00\x00\x01\x02\x03\x04\x05\x06\x07\x08'
- elif self.argument.engine in self.soldatquery:
- self.query_prompt_string = b'\x69\x00'
- elif self.argument.engine in self.twquery:
- self.query_prompt_string = b'\x04\x00\x00\xff\xff\xff\xff\x05' + bytearray(511)
- elif self.argument.engine in self.unrealquery:
- self.query_prompt_string = b'\x5C\x69\x6E\x66\x6F\x5C'
- elif self.argument.engine in self.unreal2query:
- self.query_prompt_string = b'\x79\x00\x00\x00\x00'
- elif self.argument.engine in self.unreal3query:
- self.query_prompt_string = b'\xFE\xFD\x09\x00\x00\x00\x00'
-
- self.connected = False
- self.response = None
-
- @staticmethod
- def fatal_error(error_message, error_code=1):
- sys.stderr.write('ERROR: ' + str(error_message) + '\n')
- sys.exit(error_code)
-
- @staticmethod
- def exit_success(success_message=''):
- sys.stdout.write('OK: ' + str(success_message) + '\n')
- sys.exit(0)
-
- def responding(self):
- # Connect.
- connection = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- connection.settimeout(self.server_response_timeout)
- try:
- self.connected = connection.connect((self.argument.address, int(self.argument.port)))
- except socket.timeout:
- self.fatal_error('Request timed out', 1)
- except Exception:
- self.fatal_error('Unable to connect', 1)
- # Send.
- connection.send(self.query_prompt_string)
- # Receive.
- try:
- self.response = connection.recv(self.default_buffer_length)
- except socket.error:
- self.fatal_error('Unable to receive', 2)
- connection.close()
- # Response.
- if self.response is None:
- self.fatal_error('No response', 3)
- if len(self.response) < 5:
- sys.exit('Short response.', 3)
- else:
- self.exit_success(str(self.response))
-
-def parse_args():
- parser = argparse.ArgumentParser(
- description='Allows querying of various game servers.',
- usage='usage: python3 %(prog)s [options]',
- add_help=False
- )
- parser.add_argument(
- '-a', '--address',
- type=str,
- required=True,
- help='The IPv4 address of the server.'
- )
- parser.add_argument(
- '-p', '--port',
- type=int,
- required=True,
- help='The IPv4 port of the server.'
- )
- parser.add_argument(
- '-e', '--engine',
- metavar='ENGINE',
- choices=engine_types,
- help='Engine type: ' + ' '.join(engine_types)
- )
- parser.add_argument(
- '-v', '--verbose',
- action='store_true',
- help='Display verbose output.'
- )
- parser.add_argument(
- '-d', '--debug',
- action='store_true',
- help='Display debugging output.'
- )
- parser.add_argument(
- '-V', '--version',
- action='version',
- version='%(prog)s 0.0.1',
- help='Display version and exit.'
- )
- parser.add_argument(
- '-h', '--help',
- action='help',
- help='Display help and exit.'
- )
- return parser.parse_args()
-
-def main():
- arguments = parse_args()
- server = gsquery(arguments)
- server.responding()
-
-if __name__ == '__main__':
- main()
diff --git a/lgsm/functions/update_factorio.sh b/lgsm/functions/update_factorio.sh
deleted file mode 100644
index 852ab9d87e..0000000000
--- a/lgsm/functions/update_factorio.sh
+++ /dev/null
@@ -1,168 +0,0 @@
-#!/bin/bash
-# LinuxGSM update_factorio.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Handles updating of Factorio servers.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-fn_update_dl() {
- # Download and extract files to serverfiles.
- fn_fetch_file "${remotebuildurl}" "" "" "" "${tmpdir}" "${remotebuildfilename}" "nochmodx" "norun" "force" "nohash"
- fn_dl_extract "${tmpdir}" "factorio_headless_${factorioarch}-${remotebuildversion}.tar.xz" "${serverfiles}" "factorio"
- fn_clear_tmp
-}
-
-fn_update_localbuild() {
- # Gets local build info.
- fn_print_dots "Checking local build: ${remotelocation}"
- # Uses executable to get local build.
- if [ -d "${executabledir}" ]; then
- cd "${executabledir}" || exit
- localbuild=$(${executable} --version | grep "Version:" | awk '{print $2}')
- fi
- if [ -z "${localbuild}" ]; then
- fn_print_error "Checking local build: ${remotelocation}: missing local build info"
- fn_script_log_error "Missing local build info"
- fn_script_log_error "Set localbuild to 0"
- localbuild="0"
- else
- fn_print_ok "Checking local build: ${remotelocation}"
- fn_script_log_pass "Checking local build"
- fi
-}
-
-fn_update_remotebuild() {
- # Get remote build info.
- apiurl="https://factorio.com/get-download/${branch}/headless/${factorioarch}"
- remotebuildresponse=$(curl -s "${apiurl}")
- remotebuildversion=$(echo "${remotebuildresponse}" | grep -o '[0-9]\.[0-9]\{1,\}\.[0-9]\{1,\}' | head -1)
- remotebuildurl="https://factorio.com/get-download/${branch}/headless/${factorioarch}"
- remotebuildfilename="factorio_headless_${factorioarch}-${remotebuildversion}.tar.xz"
-
- if [ "${firstcommandname}" != "INSTALL" ]; then
- fn_print_dots "Checking remote build: ${remotelocation}"
- # Checks if remotebuildversion variable has been set.
- if [ -z "${remotebuildversion}" ] || [ "${remotebuildversion}" == "null" ]; then
- fn_print_fail "Checking remote build: ${remotelocation}"
- fn_script_log_fatal "Checking remote build"
- core_exit.sh
- else
- fn_print_ok "Checking remote build: ${remotelocation}"
- fn_script_log_pass "Checking remote build"
- fi
- else
- # Checks if remotebuild variable has been set.
- if [ -z "${remotebuildversion}" ] || [ "${remotebuildversion}" == "null" ]; then
- fn_print_failure "Unable to get remote build"
- fn_script_log_fatal "Unable to get remote build"
- core_exit.sh
- fi
- fi
-}
-
-fn_update_compare() {
- fn_print_dots "Checking for update: ${remotelocation}"
- if [ "${localbuild}" != "${remotebuildversion}" ] || [ "${forceupdate}" == "1" ]; then
- fn_print_ok_nl "Checking for update: ${remotelocation}"
- echo -en "\n"
- echo -e "Update available"
- echo -e "* Local build: ${red}${localbuild} ${factorioarch}${default}"
- echo -e "* Remote build: ${green}${remotebuildversion} ${factorioarch}${default}"
- if [ -n "${branch}" ]; then
- echo -e "* Branch: ${branch}"
- fi
- if [ -f "${rootdir}/.dev-debug" ]; then
- echo -e "Remote build info"
- echo -e "* apiurl: ${apiurl}"
- echo -e "* remotebuildfilename: ${remotebuildfilename}"
- echo -e "* remotebuildurl: ${remotebuildurl}"
- echo -e "* remotebuildversion: ${remotebuildversion}"
- fi
- echo -en "\n"
- fn_script_log_info "Update available"
- fn_script_log_info "Local build: ${localbuild} ${factorioarch}"
- fn_script_log_info "Remote build: ${remotebuildversion} ${factorioarch}"
- if [ -n "${branch}" ]; then
- fn_script_log_info "Branch: ${branch}"
- fi
- fn_script_log_info "${localbuild} > ${remotebuildversion}"
-
- if [ "${commandname}" == "UPDATE" ]; then
- unset updateonstart
- check_status.sh
- # If server stopped.
- if [ "${status}" == "0" ]; then
- fn_update_dl
- if [ "${localbuild}" == "0" ]; then
- exitbypass=1
- command_start.sh
- fn_firstcommand_reset
- exitbypass=1
- sleep 5
- command_stop.sh
- fn_firstcommand_reset
- fi
- # If server started.
- else
- fn_print_restart_warning
- exitbypass=1
- command_stop.sh
- fn_firstcommand_reset
- exitbypass=1
- fn_update_dl
- exitbypass=1
- command_start.sh
- fn_firstcommand_reset
- fi
- unset exitbypass
- date +%s > "${lockdir}/lastupdate.lock"
- alert="update"
- elif [ "${commandname}" == "CHECK-UPDATE" ]; then
- alert="check-update"
- fi
- alert.sh
- else
- fn_print_ok_nl "Checking for update: ${remotelocation}"
- echo -en "\n"
- echo -e "No update available"
- echo -e "* Local build: ${green}${localbuild} ${factorioarch}${default}"
- echo -e "* Remote build: ${green}${remotebuildversion} ${factorioarch}${default}"
- if [ -n "${branch}" ]; then
- echo -e "* Branch: ${branch}"
- fi
- echo -en "\n"
- fn_script_log_info "No update available"
- fn_script_log_info "Local build: ${localbuild} ${factorioarch}"
- fn_script_log_info "Remote build: ${remotebuildversion} ${factorioarch}"
- if [ -n "${branch}" ]; then
- fn_script_log_info "Branch: ${branch}"
- fi
- if [ -f "${rootdir}/.dev-debug" ]; then
- echo -e "Remote build info"
- echo -e "* apiurl: ${apiurl}"
- echo -e "* remotebuildfilename: ${remotebuildfilename}"
- echo -e "* remotebuildurl: ${remotebuildurl}"
- echo -e "* remotebuildversion: ${remotebuildversion}"
- fi
- fi
-}
-
-# Game server architecture.
-factorioarch="linux64"
-
-# The location where the builds are checked and downloaded.
-remotelocation="factorio.com"
-
-if [ "${firstcommandname}" == "INSTALL" ]; then
- fn_update_remotebuild
- fn_update_dl
-else
- fn_print_dots "Checking for update"
- fn_print_dots "Checking for update: ${remotelocation}"
- fn_script_log_info "Checking for update: ${remotelocation}"
- fn_update_localbuild
- fn_update_remotebuild
- fn_update_compare
-fi
diff --git a/lgsm/functions/update_jediknight2.sh b/lgsm/functions/update_jediknight2.sh
deleted file mode 100644
index a88b96f61f..0000000000
--- a/lgsm/functions/update_jediknight2.sh
+++ /dev/null
@@ -1,163 +0,0 @@
-#!/bin/bash
-# LinuxGSM update_jk2.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Handles updating of Jedi Knight 2 servers.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-fn_update_dl() {
- # Download and extract files to serverfiles.
- fn_fetch_file "${remotebuildurl}" "" "" "" "${tmpdir}" "${remotebuildfilename}" "nochmodx" "norun" "force" "nohash"
- fn_dl_extract "${tmpdir}" "${remotebuildfilename}" "${serverfiles}/GameData" "linux-amd64"
- fn_clear_tmp
-}
-
-fn_update_localbuild() {
- # Gets local build info.
- fn_print_dots "Checking local build: ${remotelocation}"
- # Uses log file to get local build.
- localbuild=$(grep "\"version\"" "${consolelogdir}"/* 2> /dev/null | sed 's/.*://' | awk '{print $1}' | head -n 1 | sed 's/v//')
- if [ -z "${localbuild}" ]; then
- fn_print_error "Checking local build: ${remotelocation}: missing local build info"
- fn_script_log_error "Missing local build info"
- fn_script_log_error "Set localbuild to 0"
- localbuild="0"
- else
- fn_print_ok "Checking local build: ${remotelocation}"
- fn_script_log_pass "Checking local build"
- fi
-}
-
-fn_update_remotebuild() {
- # Get remote build info.
- apiurl="https://api.github.com/repos/mvdevs/jk2mv/releases/latest"
- remotebuildresponse=$(curl -s "${apiurl}")
- remotebuildfilename=$(echo "${remotebuildresponse}" | jq -r '.assets[]|select(.browser_download_url | contains("dedicated.zip")) | .name')
- remotebuildurl=$(echo "${remotebuildresponse}" | jq -r '.assets[]|select(.browser_download_url | contains("dedicated.zip")) | .browser_download_url')
- remotebuildversion=$(echo "${remotebuildresponse}" | jq -r '.tag_name')
-
- if [ "${firstcommandname}" != "INSTALL" ]; then
- fn_print_dots "Checking remote build: ${remotelocation}"
- # Checks if remotebuildversion variable has been set.
- if [ -z "${remotebuildversion}" ] || [ "${remotebuildversion}" == "null" ]; then
- fn_print_fail "Checking remote build: ${remotelocation}"
- fn_script_log_fatal "Checking remote build"
- core_exit.sh
- else
- fn_print_ok "Checking remote build: ${remotelocation}"
- fn_script_log_pass "Checking remote build"
- fi
- else
- # Checks if remotebuild variable has been set.
- if [ -z "${remotebuildversion}" ] || [ "${remotebuildversion}" == "null" ]; then
- fn_print_failure "Unable to get remote build"
- fn_script_log_fatal "Unable to get remote build"
- core_exit.sh
- fi
- fi
-}
-
-fn_update_compare() {
- fn_print_dots "Checking for update: ${remotelocation}"
- if [ "${localbuild}" != "${remotebuildversion}" ] || [ "${forceupdate}" == "1" ]; then
- fn_print_ok_nl "Checking for update: ${remotelocation}"
- echo -en "\n"
- echo -e "Update available"
- echo -e "* Local build: ${red}${localbuild}${default}"
- echo -e "* Remote build: ${green}${remotebuildversion}${default}"
- if [ -n "${branch}" ]; then
- echo -e "* Branch: ${branch}"
- fi
- if [ -f "${rootdir}/.dev-debug" ]; then
- echo -e "Remote build info"
- echo -e "* apiurl: ${apiurl}"
- echo -e "* remotebuildfilename: ${remotebuildfilename}"
- echo -e "* remotebuildurl: ${remotebuildurl}"
- echo -e "* remotebuildversion: ${remotebuildversion}"
- fi
- echo -en "\n"
- fn_script_log_info "Update available"
- fn_script_log_info "Local build: ${localbuild}"
- fn_script_log_info "Remote build: ${remotebuildversion}"
- if [ -n "${branch}" ]; then
- fn_script_log_info "Branch: ${branch}"
- fi
- fn_script_log_info "${localbuild} > ${remotebuildversion}"
-
- if [ "${commandname}" == "UPDATE" ]; then
- unset updateonstart
- check_status.sh
- # If server stopped.
- if [ "${status}" == "0" ]; then
- fn_update_dl
- if [ "${localbuild}" == "0" ]; then
- exitbypass=1
- command_start.sh
- fn_firstcommand_reset
- exitbypass=1
- sleep 5
- command_stop.sh
- fn_firstcommand_reset
- fi
- # If server started.
- else
- fn_print_restart_warning
- exitbypass=1
- command_stop.sh
- fn_firstcommand_reset
- exitbypass=1
- fn_update_dl
- exitbypass=1
- command_start.sh
- fn_firstcommand_reset
- fi
- unset exitbypass
- date +%s > "${lockdir}/lastupdate.lock"
- alert="update"
- elif [ "${commandname}" == "CHECK-UPDATE" ]; then
- alert="check-update"
- fi
- alert.sh
- else
- fn_print_ok_nl "Checking for update: ${remotelocation}"
- echo -en "\n"
- echo -e "No update available"
- echo -e "* Local build: ${green}${localbuild}${default}"
- echo -e "* Remote build: ${green}${remotebuildversion}${default}"
- if [ -n "${branch}" ]; then
- echo -e "* Branch: ${branch}"
- fi
- echo -en "\n"
- fn_script_log_info "No update available"
- fn_script_log_info "Local build: ${localbuild}"
- fn_script_log_info "Remote build: ${remotebuildversion}"
- if [ -n "${branch}" ]; then
- fn_script_log_info "Branch: ${branch}"
- fi
- if [ -f "${rootdir}/.dev-debug" ]; then
- echo -e "Remote build info"
- echo -e "* apiurl: ${apiurl}"
- echo -e "* remotebuildfilename: ${remotebuildfilename}"
- echo -e "* remotebuildurl: ${remotebuildurl}"
- echo -e "* remotebuildversion: ${remotebuildversion}"
- fi
- fi
-}
-
-# The location where the builds are checked and downloaded.
-remotelocation="github.com"
-
-if [ "${firstcommandname}" == "INSTALL" ]; then
- fn_update_remotebuild
- fn_update_dl
-else
- update_steamcmd.sh
- fn_print_dots "Checking for update"
- fn_print_dots "Checking for update: ${remotelocation}"
- fn_script_log_info "Checking for update: ${remotelocation}"
- fn_update_localbuild
- fn_update_remotebuild
- fn_update_compare
-fi
diff --git a/lgsm/functions/update_minecraft.sh b/lgsm/functions/update_minecraft.sh
deleted file mode 100644
index dbef26d341..0000000000
--- a/lgsm/functions/update_minecraft.sh
+++ /dev/null
@@ -1,176 +0,0 @@
-#!/bin/bash
-# LinuxGSM update_minecraft.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Handles updating of Minecraft: Java Edition servers.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-fn_update_dl() {
- # Download and extract files to serverfiles.
- fn_fetch_file "${remotebuildurl}" "" "" "" "${tmpdir}" "${remotebuildfilename}" "chmodx" "norun" "noforce" "nohash"
- cp -f "${tmpdir}/${remotebuildfilename}" "${serverfiles}/${executable#./}"
-}
-
-fn_update_localbuild() {
- # Gets local build info.
- fn_print_dots "Checking local build: ${remotelocation}"
- # Uses executable to get local build.
- if [ -d "${executabledir}" ]; then
- cd "${executabledir}" || exit
- localbuild=$(unzip -p "minecraft_server.jar" version.json | jq -r '.id')
- fi
- if [ -z "${localbuild}" ]; then
- fn_print_error "Checking local build: ${remotelocation}: missing local build info"
- fn_script_log_error "Missing local build info"
- fn_script_log_error "Set localbuild to 0"
- localbuild="0"
- else
- fn_print_ok "Checking local build: ${remotelocation}"
- fn_script_log_pass "Checking local build"
- fi
-}
-
-fn_update_remotebuild() {
- # Get remote build info.
- apiurl="https://launchermeta.mojang.com/mc/game/version_manifest.json"
- remotebuildresponse=$(curl -s "${apiurl}")
- # Latest release.
- if [ "${branch}" == "release" ] && [ "${mcversion}" == "latest" ]; then
- remotebuildversion=$(echo "${remotebuildresponse}" | jq -r '.latest.release')
- # Latest snapshot.
- elif [ "${branch}" == "snapshot" ] && [ "${mcversion}" == "latest" ]; then
- remotebuildversion=$(echo "${remotebuildresponse}" | jq -r '.latest.snapshot')
- # Specific release/snapshot.
- else
- remotebuildversion=$(echo "${remotebuildresponse}" | jq -r --arg branch "${branch}" --arg mcversion "${mcversion}" '.versions | .[] | select(.type==$branch and .id==$mcversion) | .id')
- fi
- remotebuildfilename="minecraft_server.${remotebuildversion}.jar"
- # Generate link to version manifest json.
- remotebuildmanifest=$(echo "${remotebuildresponse}" | jq -r --arg branch "${branch}" --arg mcversion "${remotebuildversion}" '.versions | .[] | select(.type==$branch and .id==$mcversion) | .url')
- # Generate link to server.jar
- remotebuildurl=$(curl -s "${remotebuildmanifest}" | jq -r '.downloads.server.url')
-
- if [ "${firstcommandname}" != "INSTALL" ]; then
- fn_print_dots "Checking remote build: ${remotelocation}"
- # Checks if remotebuildversion variable has been set.
- if [ -z "${remotebuildversion}" ] || [ "${remotebuildversion}" == "null" ]; then
- fn_print_fail "Checking remote build: ${remotelocation}"
- fn_script_log_fatal "Checking remote build"
- core_exit.sh
- else
- fn_print_ok "Checking remote build: ${remotelocation}"
- fn_script_log_pass "Checking remote build"
- fi
- else
- # Checks if remotebuild variable has been set.
- if [ -z "${remotebuildversion}" ] || [ "${remotebuildversion}" == "null" ]; then
- fn_print_failure "Unable to get remote build"
- fn_script_log_fatal "Unable to get remote build"
- core_exit.sh
- fi
- fi
-}
-
-fn_update_compare() {
- fn_print_dots "Checking for update: ${remotelocation}"
- if [ "${localbuild}" != "${remotebuildversion}" ] || [ "${forceupdate}" == "1" ]; then
- fn_print_ok_nl "Checking for update: ${remotelocation}"
- echo -en "\n"
- echo -e "Update available"
- echo -e "* Local build: ${red}${localbuild}${default}"
- echo -e "* Remote build: ${green}${remotebuildversion}${default}"
- if [ -n "${branch}" ]; then
- echo -e "* Branch: ${branch}"
- fi
- if [ -f "${rootdir}/.dev-debug" ]; then
- echo -e "Remote build info"
- echo -e "* apiurl: ${apiurl}"
- echo -e "* remotebuildfilename: ${remotebuildfilename}"
- echo -e "* remotebuildurl: ${remotebuildurl}"
- echo -e "* remotebuildversion: ${remotebuildversion}"
- fi
- echo -en "\n"
- fn_script_log_info "Update available"
- fn_script_log_info "Local build: ${localbuild}"
- fn_script_log_info "Remote build: ${remotebuildversion}"
- if [ -n "${branch}" ]; then
- fn_script_log_info "Branch: ${branch}"
- fi
- fn_script_log_info "${localbuild} > ${remotebuildversion}"
-
- if [ "${commandname}" == "UPDATE" ]; then
- unset updateonstart
- check_status.sh
- # If server stopped.
- if [ "${status}" == "0" ]; then
- fn_update_dl
- if [ "${localbuild}" == "0" ]; then
- exitbypass=1
- command_start.sh
- fn_firstcommand_reset
- exitbypass=1
- sleep 5
- command_stop.sh
- fn_firstcommand_reset
- fi
- # If server started.
- else
- fn_print_restart_warning
- exitbypass=1
- command_stop.sh
- fn_firstcommand_reset
- exitbypass=1
- fn_update_dl
- exitbypass=1
- command_start.sh
- fn_firstcommand_reset
- fi
- unset exitbypass
- date +%s > "${lockdir}/lastupdate.lock"
- alert="update"
- elif [ "${commandname}" == "CHECK-UPDATE" ]; then
- alert="check-update"
- fi
- alert.sh
- else
- fn_print_ok_nl "Checking for update: ${remotelocation}"
- echo -en "\n"
- echo -e "No update available"
- echo -e "* Local build: ${green}${localbuild}${default}"
- echo -e "* Remote build: ${green}${remotebuildversion}${default}"
- if [ -n "${branch}" ]; then
- echo -e "* Branch: ${branch}"
- fi
- echo -en "\n"
- fn_script_log_info "No update available"
- fn_script_log_info "Local build: ${localbuild}"
- fn_script_log_info "Remote build: ${remotebuildversion}"
- if [ -n "${branch}" ]; then
- fn_script_log_info "Branch: ${branch}"
- fi
- if [ -f "${rootdir}/.dev-debug" ]; then
- echo -e "Remote build info"
- echo -e "* apiurl: ${apiurl}"
- echo -e "* remotebuildfilename: ${remotebuildfilename}"
- echo -e "* remotebuildurl: ${remotebuildurl}"
- echo -e "* remotebuildversion: ${remotebuildversion}"
- fi
- fi
-}
-
-# The location where the builds are checked and downloaded.
-remotelocation="mojang.com"
-
-if [ "${firstcommandname}" == "INSTALL" ]; then
- fn_update_remotebuild
- fn_update_dl
-else
- fn_print_dots "Checking for update"
- fn_print_dots "Checking for update: ${remotelocation}"
- fn_script_log_info "Checking for update: ${remotelocation}"
- fn_update_localbuild
- fn_update_remotebuild
- fn_update_compare
-fi
diff --git a/lgsm/functions/update_minecraft_bedrock.sh b/lgsm/functions/update_minecraft_bedrock.sh
deleted file mode 100644
index c17088171a..0000000000
--- a/lgsm/functions/update_minecraft_bedrock.sh
+++ /dev/null
@@ -1,181 +0,0 @@
-#!/bin/bash
-# LinuxGSM update_minecraft_bedrock.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Handles updating of Minecraft Bedrock servers.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-fn_update_dl() {
- fn_fetch_file "${remotebuildurl}" "" "" "" "${tmpdir}" "bedrock_server.${remotebuildversion}.zip" "nochmodx" "norun" "noforce" "nohash"
- echo -e "Extracting to ${serverfiles}...\c"
- if [ "${firstcommandname}" == "INSTALL" ]; then
- unzip -oq "${tmpdir}/bedrock_server.${remotebuildversion}.zip" -x "server.properties" -d "${serverfiles}"
- else
- unzip -oq "${tmpdir}/bedrock_server.${remotebuildversion}.zip" -x "permissions.json" "server.properties" "allowlist.json" -d "${serverfiles}"
- fi
- local exitcode=$?
- if [ "${exitcode}" != 0 ]; then
- fn_print_fail_eol_nl
- fn_script_log_fatal "Extracting ${local_filename}"
- if [ -f "${lgsmlog}" ]; then
- echo -e "${extractcmd}" >> "${lgsmlog}"
- fi
- echo -e "${extractcmd}"
- core_exit.sh
- else
- fn_print_ok_eol_nl
- fn_script_log_pass "Extracting ${local_filename}"
- fi
-}
-
-fn_update_localbuild() {
- # Gets local build info.
- fn_print_dots "Checking local build: ${remotelocation}"
- # Uses log file to get local build.
- localbuild=$(grep Version "${consolelogdir}"/* 2> /dev/null | tail -1 | sed 's/.*Version: //' | tr -d '\000-\011\013-\037')
- if [ -z "${localbuild}" ]; then
- fn_print_error "Checking local build: ${remotelocation}: missing local build info"
- fn_script_log_error "Missing local build info"
- fn_script_log_error "Set localbuild to 0"
- localbuild="0"
- else
- fn_print_ok "Checking local build: ${remotelocation}"
- fn_script_log_pass "Checking local build"
- fi
-}
-
-fn_update_remotebuild() {
- # Random number for userAgent
- randnum=$((1 + RANDOM % 5000))
- # Get remote build info.
- if [ "${mcversion}" == "latest" ]; then
- remotebuildversion=$(curl -H "Accept-Encoding: identity" -H "Accept-Language: en" -Ls -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.${randnum}.212 Safari/537.36" "https://www.minecraft.net/en-us/download/server/bedrock/" | grep -o 'https://minecraft.azureedge.net/bin-linux/[^"]*' | sed 's/.*\///' | grep -Eo "[.0-9]+[0-9]")
- else
- remotebuildversion="${mcversion}"
- fi
- remotebuildurl="https://minecraft.azureedge.net/bin-linux/bedrock-server-${remotebuildversion}.zip"
-
- if [ "${firstcommandname}" != "INSTALL" ]; then
- fn_print_dots "Checking remote build: ${remotelocation}"
- # Checks if remotebuildversion variable has been set.
- if [ -z "${remotebuildversion}" ] || [ "${remotebuildversion}" == "null" ]; then
- fn_print_fail "Checking remote build: ${remotelocation}"
- fn_script_log_fatal "Checking remote build"
- core_exit.sh
- else
- fn_print_ok "Checking remote build: ${remotelocation}"
- fn_script_log_pass "Checking remote build"
- fi
- else
- # Checks if remotebuild variable has been set.
- if [ -z "${remotebuildversion}" ] || [ "${remotebuildversion}" == "null" ]; then
- fn_print_failure "Unable to get remote build"
- fn_script_log_fatal "Unable to get remote build"
- core_exit.sh
- fi
- fi
-}
-
-fn_update_compare() {
- fn_print_dots "Checking for update: ${remotelocation}"
- if [ "${localbuild}" != "${remotebuildversion}" ] || [ "${forceupdate}" == "1" ]; then
- fn_print_ok_nl "Checking for update: ${remotelocation}"
- echo -en "\n"
- echo -e "Update available"
- echo -e "* Local build: ${red}${localbuild}${default}"
- echo -e "* Remote build: ${green}${remotebuildversion}${default}"
- if [ -n "${branch}" ]; then
- echo -e "* Branch: ${branch}"
- fi
- if [ -f "${rootdir}/.dev-debug" ]; then
- echo -e "Remote build info"
- echo -e "* apiurl: ${apiurl}"
- echo -e "* remotebuildfilename: ${remotebuildfilename}"
- echo -e "* remotebuildurl: ${remotebuildurl}"
- echo -e "* remotebuildversion: ${remotebuildversion}"
- fi
- echo -en "\n"
- fn_script_log_info "Update available"
- fn_script_log_info "Local build: ${localbuild}"
- fn_script_log_info "Remote build: ${remotebuildversion}"
- if [ -n "${branch}" ]; then
- fn_script_log_info "Branch: ${branch}"
- fi
- fn_script_log_info "${localbuild} > ${remotebuildversion}"
-
- if [ "${commandname}" == "UPDATE" ]; then
- unset updateonstart
- check_status.sh
- # If server stopped.
- if [ "${status}" == "0" ]; then
- fn_update_dl
- if [ "${localbuild}" == "0" ]; then
- exitbypass=1
- command_start.sh
- fn_firstcommand_reset
- exitbypass=1
- sleep 5
- command_stop.sh
- fn_firstcommand_reset
- fi
- # If server started.
- else
- fn_print_restart_warning
- exitbypass=1
- command_stop.sh
- fn_firstcommand_reset
- exitbypass=1
- fn_update_dl
- exitbypass=1
- command_start.sh
- fn_firstcommand_reset
- fi
- unset exitbypass
- date +%s > "${lockdir}/lastupdate.lock"
- alert="update"
- elif [ "${commandname}" == "CHECK-UPDATE" ]; then
- alert="check-update"
- fi
- alert.sh
- else
- fn_print_ok_nl "Checking for update: ${remotelocation}"
- echo -en "\n"
- echo -e "No update available"
- echo -e "* Local build: ${green}${localbuild}${default}"
- echo -e "* Remote build: ${green}${remotebuildversion}${default}"
- if [ -n "${branch}" ]; then
- echo -e "* Branch: ${branch}"
- fi
- echo -en "\n"
- fn_script_log_info "No update available"
- fn_script_log_info "Local build: ${localbuild}"
- fn_script_log_info "Remote build: ${remotebuildversion}"
- if [ -n "${branch}" ]; then
- fn_script_log_info "Branch: ${branch}"
- fi
- if [ -f "${rootdir}/.dev-debug" ]; then
- echo -e "Remote build info"
- echo -e "* apiurl: ${apiurl}"
- echo -e "* remotebuildfilename: ${remotebuildfilename}"
- echo -e "* remotebuildurl: ${remotebuildurl}"
- echo -e "* remotebuildversion: ${remotebuildversion}"
- fi
- fi
-}
-
-# The location where the builds are checked and downloaded.
-remotelocation="minecraft.net"
-
-if [ "${firstcommandname}" == "INSTALL" ]; then
- fn_update_remotebuild
- fn_update_dl
-else
- fn_print_dots "Checking for update"
- fn_print_dots "Checking for update: ${remotelocation}"
- fn_script_log_info "Checking for update: ${remotelocation}"
- fn_update_localbuild
- fn_update_remotebuild
- fn_update_compare
-fi
diff --git a/lgsm/functions/update_mta.sh b/lgsm/functions/update_mta.sh
deleted file mode 100644
index 5252c13280..0000000000
--- a/lgsm/functions/update_mta.sh
+++ /dev/null
@@ -1,166 +0,0 @@
-#!/bin/bash
-# LinuxGSM update_mta.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Handles updating of Multi Theft Auto servers.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-fn_update_dl() {
- # Download and extract files to tmpdir.
- fn_fetch_file "http://linux.mtasa.com/dl/multitheftauto_linux_x64.tar.gz" "" "" "" "${tmpdir}" "multitheftauto_linux_x64.tar.gz" "nochmodx" "norun" "force" "nohash"
- fn_dl_extract "${tmpdir}" "multitheftauto_linux_x64.tar.gz" "${serverfiles}" "multitheftauto_linux_x64"
-}
-
-fn_update_localbuild() {
- # Gets local build info.
- fn_print_dots "Checking local build: ${remotelocation}"
- # Uses log file to get local build.
- localbuild=$(grep "= Multi Theft Auto: San Andreas v" "${serverfiles}/mods/deathmatch/logs/server.log" | awk '{ print $7 }' | sed -r 's/^.{1}//' | tail -1)
- if [ -z "${localbuild}" ]; then
- fn_print_error "Checking local build: ${remotelocation}: missing local build info"
- fn_script_log_error "Missing local build info"
- fn_script_log_error "Set localbuild to 0"
- localbuild="0"
- else
- fn_print_ok "Checking local build: ${remotelocation}"
- fn_script_log_pass "Checking local build"
- fi
-}
-
-fn_update_remotebuild() {
- # Get remote build info.
- apiurl="https://api.github.com/repos/multitheftauto/mtasa-blue/releases/latest"
- remotebuildresponse=$(curl -s "${apiurl}")
- remotebuildfilename=$(echo "${remotebuildresponse}" | jq -r '.assets[]|select(.browser_download_url | contains("Linux-amd64")) | .name')
- remotebuildurl=$(echo "${remotebuildresponse}" | jq -r '.assets[]|select(.browser_download_url | contains("Linux-amd64")) | .browser_download_url')
- remotebuildversion=$(echo "${remotebuildresponse}" | jq -r '.tag_name')
- if [ "${firstcommandname}" != "INSTALL" ]; then
- fn_print_dots "Checking remote build: ${remotelocation}"
- # Checks if remotebuildversion variable has been set.
- if [ -z "${remotebuildversion}" ] || [ "${remotebuildversion}" == "null" ]; then
- fn_print_fail "Checking remote build: ${remotelocation}"
- fn_script_log_fatal "Checking remote build"
- core_exit.sh
- else
- fn_print_ok "Checking remote build: ${remotelocation}"
- fn_script_log_pass "Checking remote build"
- fi
- else
- # Checks if remotebuild variable has been set.
- if [ -z "${remotebuildversion}" ] || [ "${remotebuildversion}" == "null" ]; then
- fn_print_failure "Unable to get remote build"
- fn_script_log_fatal "Unable to get remote build"
- core_exit.sh
- fi
- fi
-}
-
-fn_update_compare() {
- fn_print_dots "Checking for update: ${remotelocation}"
- if [ "${localbuild}" != "${remotebuildversion}" ] || [ "${forceupdate}" == "1" ]; then
- if [ "${forceupdate}" == "1" ]; then
- # forceupdate bypasses checks, useful for small build changes
- mtaupdatestatus="forced"
- else
- mtaupdatestatus="available"
- fi
- fn_print_ok_nl "Checking for update: ${remotelocation}"
- echo -en "\n"
- echo -e "Update available"
- echo -e "* Local build: ${red}${localbuild}${default}"
- echo -e "* Remote build: ${green}${remotebuildversion}${default}"
- if [ -n "${branch}" ]; then
- echo -e "* Branch: ${branch}"
- fi
- if [ -f "${rootdir}/.dev-debug" ]; then
- echo -e "Remote build info"
- echo -e "* apiurl: ${apiurl}"
- echo -e "* remotebuildfilename: ${remotebuildfilename}"
- echo -e "* remotebuildurl: ${remotebuildurl}"
- echo -e "* remotebuildversion: ${remotebuildversion}"
- fi
- echo -en "\n"
- fn_script_log_info "Update available"
- fn_script_log_info "Local build: ${localbuild}"
- fn_script_log_info "Remote build: ${remotebuildversion}"
- if [ -n "${branch}" ]; then
- fn_script_log_info "Branch: ${branch}"
- fi
- fn_script_log_info "${localbuild} > ${remotebuildversion}"
-
- if [ "${commandname}" == "UPDATE" ]; then
- unset updateonstart
- check_status.sh
- # If server stopped.
- if [ "${status}" == "0" ]; then
- fn_update_dl
- if [ "${localbuild}" == "0" ]; then
- exitbypass=1
- command_start.sh
- fn_firstcommand_reset
- exitbypass=1
- sleep 5
- command_stop.sh
- fn_firstcommand_reset
- fi
- # If server started.
- else
- fn_print_restart_warning
- exitbypass=1
- command_stop.sh
- fn_firstcommand_reset
- exitbypass=1
- fn_update_dl
- exitbypass=1
- command_start.sh
- fn_firstcommand_reset
- fi
- unset exitbypass
- date +%s > "${lockdir}/lastupdate.lock"
- alert="update"
- elif [ "${commandname}" == "CHECK-UPDATE" ]; then
- alert="check-update"
- fi
- alert.sh
- else
- fn_print_ok_nl "Checking for update: ${remotelocation}"
- echo -en "\n"
- echo -e "No update available"
- echo -e "* Local build: ${green}${localbuild}${default}"
- echo -e "* Remote build: ${green}${remotebuildversion}${default}"
- if [ -n "${branch}" ]; then
- echo -e "* Branch: ${branch}"
- fi
- echo -en "\n"
- fn_script_log_info "No update available"
- fn_script_log_info "Local build: ${localbuild}"
- fn_script_log_info "Remote build: ${remotebuildversion}"
- if [ -n "${branch}" ]; then
- fn_script_log_info "Branch: ${branch}"
- fi
- if [ -f "${rootdir}/.dev-debug" ]; then
- echo -e "Remote build info"
- echo -e "* apiurl: ${apiurl}"
- echo -e "* remotebuildfilename: ${remotebuildfilename}"
- echo -e "* remotebuildurl: ${remotebuildurl}"
- echo -e "* remotebuildversion: ${remotebuildversion}"
- fi
- fi
-}
-
-# The location where the builds are checked and downloaded.
-remotelocation="linux.mtasa.com"
-
-if [ "${firstcommandname}" == "INSTALL" ]; then
- fn_update_remotebuild
- fn_update_dl
-else
- fn_print_dots "Checking for update"
- fn_print_dots "Checking for update: ${remotelocation}"
- fn_script_log_info "Checking for update: ${remotelocation}"
- fn_update_localbuild
- fn_update_remotebuild
- fn_update_compare
-fi
diff --git a/lgsm/functions/update_papermc.sh b/lgsm/functions/update_papermc.sh
deleted file mode 100644
index 102ef65701..0000000000
--- a/lgsm/functions/update_papermc.sh
+++ /dev/null
@@ -1,194 +0,0 @@
-#!/bin/bash
-# LinuxGSM update_papermc.sh function
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Handles updating of PaperMC and Waterfall servers.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-fn_update_dl() {
- # Download and extract files to serverfiles.
- fn_fetch_file "${remotebuildurl}" "" "" "" "${tmpdir}" "${remotebuildfilename}" "chmodx" "norun" "force" "${remotebuildhash}"
- cp -f "${tmpdir}/${remotebuildfilename}" "${serverfiles}/${executable#./}"
- echo "${remotebuildversion}" > "${serverfiles}/build.txt"
-}
-
-fn_update_localbuild() {
- # Gets local build info.
- fn_print_dots "Checking local build: ${remotelocation}"
- # Uses build file to get local build.
- localbuild=$(head -n 1 "${serverfiles}/build.txt" 2> /dev/null)
- if [ -z "${localbuild}" ]; then
- fn_print_error "Checking local build: ${remotelocation}: missing local build info"
- fn_script_log_error "Missing local build info"
- fn_script_log_error "Set localbuild to 0"
- localbuild="0"
- else
- fn_print_ok "Checking local build: ${remotelocation}"
- fn_script_log_pass "Checking local build"
- fi
-}
-
-fn_update_remotebuild() {
- # Get remote build info.
- apiurl="https://papermc.io/api/v2/projects"
- # Get list of projects.
- remotebuildresponse=$(curl -s "${apiurl}")
- # Get list of Minecraft versions for project.
- remotebuildresponseproject=$(curl -s "${apiurl}/${paperproject}")
- # Get latest Minecraft: Java Edition version or user specified version.
- if [ "${mcversion}" == "latest" ]; then
- remotebuildmcversion=$(echo "${remotebuildresponseproject}" | jq -r '.versions[-1]')
- else
- # Checks if user specified version exists.
- remotebuildmcversion=$(echo "${remotebuildresponseproject}" | jq -r -e --arg mcversion "${mcversion}" '.versions[]|select(. == $mcversion)')
- if [ -z "${remotebuildmcversion}" ]; then
- # user passed version does not exist
- fn_print_error_nl "Version ${mcversion} not available from ${remotelocation}"
- fn_script_log_error "Version ${mcversion} not available from ${remotelocation}"
- core_exit.sh
- fi
- fi
- # Get list of paper builds for specific Minecraft: Java Edition version.
- remotebuildresponsemcversion=$(curl -s "${apiurl}/paper/versions/${remotebuildmcversion}")
- # Get latest paper build for specific Minecraft: Java Edition version.
- remotebuildpaperversion=$(echo "${remotebuildresponsemcversion}" | jq -r '.builds[-1]')
- # Get various info about the paper build.
- remotebuildresponseversion=$(curl -s "${apiurl}/${paperproject}/versions/${remotebuildmcversion}/builds/${remotebuildpaperversion}")
- remotebuildfilename=$(echo "${remotebuildresponseversion}" | jq -r '.downloads.application.name')
- remotebuildhash=$(echo "${remotebuildresponseversion}" | jq -r '.downloads.application.sha256')
- remotebuildurl="${apiurl}/${paperproject}/versions/${remotebuildmcversion}/builds/${remotebuildpaperversion}/downloads/${remotebuildfilename}"
- # Combines Minecraft: Java Edition version and paper build. e.g 1.16.5-456
- remotebuildversion="${remotebuildmcversion}-${remotebuildpaperversion}"
-
- if [ "${firstcommandname}" != "INSTALL" ]; then
- fn_print_dots "Checking remote build: ${remotelocation}"
- # Checks if remotebuildversion variable has been set.
- if [ -z "${remotebuildversion}" ] || [ "${remotebuildversion}" == "null" ]; then
- fn_print_fail "Checking remote build: ${remotelocation}"
- fn_script_log_fatal "Checking remote build"
- core_exit.sh
- else
- fn_print_ok "Checking remote build: ${remotelocation}"
- fn_script_log_pass "Checking remote build"
- fi
- else
- # Checks if remotebuild variable has been set.
- if [ -z "${remotebuildversion}" ] || [ "${remotebuildversion}" == "null" ]; then
- fn_print_failure "Unable to get remote build"
- fn_script_log_fatal "Unable to get remote build"
- core_exit.sh
- fi
- fi
-}
-
-fn_update_compare() {
- fn_print_dots "Checking for update: ${remotelocation}"
- if [ "${localbuild}" != "${remotebuildversion}" ] || [ "${forceupdate}" == "1" ]; then
- fn_print_ok_nl "Checking for update: ${remotelocation}"
- echo -en "\n"
- echo -e "Update available"
- echo -e "* Local build: ${red}${localbuild}${default}"
- echo -e "* Remote build: ${green}${remotebuildversion}${default}"
- if [ -n "${branch}" ]; then
- echo -e "* Branch: ${branch}"
- fi
- if [ -f "${rootdir}/.dev-debug" ]; then
- echo -e "Remote build info"
- echo -e "* apiurl: ${apiurl}"
- echo -e "* remotebuildfilename: ${remotebuildfilename}"
- echo -e "* remotebuildurl: ${remotebuildurl}"
- echo -e "* remotebuildversion: ${remotebuildversion}"
- fi
- echo -en "\n"
- fn_script_log_info "Update available"
- fn_script_log_info "Local build: ${localbuild}"
- fn_script_log_info "Remote build: ${remotebuildversion}"
- if [ -n "${branch}" ]; then
- fn_script_log_info "Branch: ${branch}"
- fi
- fn_script_log_info "${localbuild} > ${remotebuildversion}"
-
- if [ "${commandname}" == "UPDATE" ]; then
- unset updateonstart
- check_status.sh
- # If server stopped.
- if [ "${status}" == "0" ]; then
- fn_update_dl
- if [ "${localbuild}" == "0" ]; then
- exitbypass=1
- command_start.sh
- fn_firstcommand_reset
- exitbypass=1
- sleep 5
- command_stop.sh
- fn_firstcommand_reset
- fi
- # If server started.
- else
- fn_print_restart_warning
- exitbypass=1
- command_stop.sh
- fn_firstcommand_reset
- exitbypass=1
- fn_update_dl
- exitbypass=1
- command_start.sh
- fn_firstcommand_reset
- fi
- unset exitbypass
- date +%s > "${lockdir}/lastupdate.lock"
- alert="update"
- elif [ "${commandname}" == "CHECK-UPDATE" ]; then
- alert="check-update"
- fi
- alert.sh
- else
- fn_print_ok_nl "Checking for update: ${remotelocation}"
- echo -en "\n"
- echo -e "No update available"
- echo -e "* Local build: ${green}${localbuild}${default}"
- echo -e "* Remote build: ${green}${remotebuildversion}${default}"
- if [ -n "${branch}" ]; then
- echo -e "* Branch: ${branch}"
- fi
- echo -en "\n"
- fn_script_log_info "No update available"
- fn_script_log_info "Local build: ${localbuild}"
- fn_script_log_info "Remote build: ${remotebuildversion}"
- if [ -n "${branch}" ]; then
- fn_script_log_info "Branch: ${branch}"
- fi
- if [ -f "${rootdir}/.dev-debug" ]; then
- echo -e "Remote build info"
- echo -e "* apiurl: ${apiurl}"
- echo -e "* remotebuildfilename: ${remotebuildfilename}"
- echo -e "* remotebuildurl: ${remotebuildurl}"
- echo -e "* remotebuildversion: ${remotebuildversion}"
- fi
- fi
-}
-
-# The location where the builds are checked and downloaded.
-remotelocation="papermc.io"
-
-if [ "${shortname}" == "pmc" ]; then
- paperproject="paper"
-elif [ "${shortname}" == "vpmc" ]; then
- paperproject="velocity"
-elif [ "${shortname}" == "wmc" ]; then
- paperproject="waterfall"
-fi
-
-if [ "${firstcommandname}" == "INSTALL" ]; then
- fn_update_remotebuild
- fn_update_dl
-else
- fn_print_dots "Checking for update"
- fn_print_dots "Checking for update: ${remotelocation}"
- fn_script_log_info "Checking for update: ${remotelocation}"
- fn_update_localbuild
- fn_update_remotebuild
- fn_update_compare
-fi
diff --git a/lgsm/functions/update_steamcmd.sh b/lgsm/functions/update_steamcmd.sh
deleted file mode 100644
index 85bacb8997..0000000000
--- a/lgsm/functions/update_steamcmd.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/bash
-# LinuxGSM update_steamcmd.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Handles updating using SteamCMD.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-# init steamcmd functions
-core_steamcmd.sh
-
-# The location where the builds are checked and downloaded.
-remotelocation="SteamCMD"
-check.sh
-
-fn_print_dots "${remotelocation}"
-
-if [ "${forceupdate}" == "1" ]; then
- # forceupdate bypasses update checks.
- if [ "${status}" != "0" ]; then
- fn_print_restart_warning
- exitbypass=1
- command_stop.sh
- fn_firstcommand_reset
- fn_dl_steamcmd
- date +%s > "${lockdir}/lastupdate.lock"
- exitbypass=1
- command_start.sh
- fn_firstcommand_reset
- else
- fn_dl_steamcmd
- date +%s > "${lockdir}/lastupdate.lock"
- fi
-else
- fn_update_steamcmd_localbuild
- fn_update_steamcmd_remotebuild
- fn_update_steamcmd_compare
-fi
diff --git a/lgsm/functions/update_ts3.sh b/lgsm/functions/update_ts3.sh
deleted file mode 100644
index 0f5327de28..0000000000
--- a/lgsm/functions/update_ts3.sh
+++ /dev/null
@@ -1,181 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_ts3.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Handles updating of Teamspeak 3 servers.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-fn_update_dl() {
- # Download and extract files to serverfiles.
- fn_fetch_file "${remotebuildurl}" "" "" "" "${tmpdir}" "${remotebuildfilename}" "nochmodx" "norun" "force" "${remotebuildhash}"
- fn_dl_extract "${tmpdir}" "${remotebuildfilename}" "${serverfiles}" "teamspeak3-server_linux_${ts3arch}"
- fn_clear_tmp
-}
-
-fn_update_localbuild() {
- # Gets local build info.
- fn_print_dots "Checking local build: ${remotelocation}"
- # Uses log file to get local build.
- localbuild=$(grep -Eo "TeamSpeak 3 Server ((\.)?[0-9]{1,3}){1,3}\.[0-9]{1,3}" "$(find ./* -name "ts3server*_0.log" 2> /dev/null | sort | tail -1)" | grep -Eo "((\.)?[0-9]{1,3}){1,3}\.[0-9]{1,3}" | tail -1)
- if [ -z "${localbuild}" ]; then
- fn_print_error "Checking local build: ${remotelocation}: missing local build info"
- fn_script_log_error "Missing local build info"
- fn_script_log_error "Set localbuild to 0"
- localbuild="0"
- else
- fn_print_ok "Checking local build: ${remotelocation}"
- fn_script_log_pass "Checking local build"
- fi
-}
-
-fn_update_remotebuild() {
- # Get remote build info.
- apiurl="https://www.teamspeak.com/versions/server.json"
- remotebuildresponse=$(curl -s "${apiurl}")
-
- if [ "${ts3arch}" == "amd64" ]; then
- remotebuildurl=$(echo -e "${remotebuildresponse}" | jq -r '.linux.x86_64.mirrors."teamspeak.com"')
- remotebuildhash=$(echo -e "${remotebuildresponse}" | jq -r '.linux.x86_64.checksum')
- elif [ "${ts3arch}" == "x86" ]; then
- remotebuildurl=$(echo -e "${remotebuildresponse}" | jq -r '.linux.x86.mirrors."teamspeak.com"')
- remotebuildhash=$(echo -e "${remotebuildresponse}" | jq -r '.linux.x86.checksum')
- fi
- remotebuildfilename=$(basename "${remotebuildurl}")
- remotebuildversion=$(echo -e "${remotebuildresponse}" | jq -r '.linux.x86_64.version')
-
- if [ "${firstcommandname}" != "INSTALL" ]; then
- fn_print_dots "Checking remote build: ${remotelocation}"
- # Checks if remotebuildversion variable has been set.
- if [ -z "${remotebuildversion}" ] || [ "${remotebuildversion}" == "null" ]; then
- fn_print_fail "Checking remote build: ${remotelocation}"
- fn_script_log_fatal "Checking remote build"
- core_exit.sh
- else
- fn_print_ok "Checking remote build: ${remotelocation}"
- fn_script_log_pass "Checking remote build"
- fi
- else
- # Checks if remotebuild variable has been set.
- if [ -z "${remotebuildversion}" ] || [ "${remotebuildversion}" == "null" ]; then
- fn_print_failure "Unable to get remote build"
- fn_script_log_fatal "Unable to get remote build"
- core_exit.sh
- fi
- fi
-}
-
-fn_update_compare() {
- fn_print_dots "Checking for update: ${remotelocation}"
- if [ "${localbuild}" != "${remotebuildversion}" ] || [ "${forceupdate}" == "1" ]; then
- fn_print_ok_nl "Checking for update: ${remotelocation}"
- echo -en "\n"
- echo -e "Update available"
- echo -e "* Local build: ${red}${localbuild}${default}"
- echo -e "* Remote build: ${green}${remotebuildversion}${default}"
- if [ -n "${branch}" ]; then
- echo -e "* Branch: ${branch}"
- fi
- if [ -f "${rootdir}/.dev-debug" ]; then
- echo -e "Remote build info"
- echo -e "* apiurl: ${apiurl}"
- echo -e "* remotebuildfilename: ${remotebuildfilename}"
- echo -e "* remotebuildurl: ${remotebuildurl}"
- echo -e "* remotebuildversion: ${remotebuildversion}"
- fi
- echo -en "\n"
- fn_script_log_info "Update available"
- fn_script_log_info "Local build: ${localbuild}"
- fn_script_log_info "Remote build: ${remotebuildversion}"
- if [ -n "${branch}" ]; then
- fn_script_log_info "Branch: ${branch}"
- fi
- fn_script_log_info "${localbuild} > ${remotebuildversion}"
-
- if [ "${commandname}" == "UPDATE" ]; then
- unset updateonstart
- check_status.sh
- # If server stopped.
- if [ "${status}" == "0" ]; then
- fn_update_dl
- if [ "${localbuild}" == "0" ]; then
- exitbypass=1
- command_start.sh
- fn_firstcommand_reset
- exitbypass=1
- sleep 5
- command_stop.sh
- fn_firstcommand_reset
- fi
- # If server started.
- else
- fn_print_restart_warning
- exitbypass=1
- command_stop.sh
- fn_firstcommand_reset
- exitbypass=1
- fn_update_dl
- exitbypass=1
- command_start.sh
- fn_firstcommand_reset
- fi
- unset exitbypass
- date +%s > "${lockdir}/lastupdate.lock"
- alert="update"
- elif [ "${commandname}" == "CHECK-UPDATE" ]; then
- alert="check-update"
- fi
- alert.sh
- else
- fn_print_ok_nl "Checking for update: ${remotelocation}"
- echo -en "\n"
- echo -e "No update available"
- echo -e "* Local build: ${green}${localbuild}${default}"
- echo -e "* Remote build: ${green}${remotebuildversion}${default}"
- if [ -n "${branch}" ]; then
- echo -e "* Branch: ${branch}"
- fi
- echo -en "\n"
- fn_script_log_info "No update available"
- fn_script_log_info "Local build: ${localbuild}"
- fn_script_log_info "Remote build: ${remotebuildversion}"
- if [ -n "${branch}" ]; then
- fn_script_log_info "Branch: ${branch}"
- fi
- if [ -f "${rootdir}/.dev-debug" ]; then
- echo -e "Remote build info"
- echo -e "* apiurl: ${apiurl}"
- echo -e "* remotebuildfilename: ${remotebuildfilename}"
- echo -e "* remotebuildurl: ${remotebuildurl}"
- echo -e "* remotebuildversion: ${remotebuildversion}"
- fi
- fi
-}
-
-# Game server architecture.
-info_distro.sh
-if [ "${arch}" == "x86_64" ]; then
- ts3arch="amd64"
-elif [ "${arch}" == "i386" ] || [ "${arch}" == "i686" ]; then
- ts3arch="x86"
-else
- fn_print_failure "Unknown or unsupported architecture: ${arch}"
- fn_script_log_fatal "Unknown or unsupported architecture: ${arch}"
- core_exit.sh
-fi
-
-# The location where the builds are checked and downloaded.
-remotelocation="teamspeak.com"
-
-if [ "${firstcommandname}" == "INSTALL" ]; then
- fn_update_remotebuild
- fn_update_dl
-else
- fn_print_dots "Checking for update"
- fn_print_dots "Checking for update: ${remotelocation}"
- fn_script_log_info "Checking for update: ${remotelocation}"
- fn_update_localbuild
- fn_update_remotebuild
- fn_update_compare
-fi
diff --git a/lgsm/functions/update_ut99.sh b/lgsm/functions/update_ut99.sh
deleted file mode 100644
index 045b29dbe1..0000000000
--- a/lgsm/functions/update_ut99.sh
+++ /dev/null
@@ -1,163 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_ut99.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Handles updating of Unreal Tournament 99 servers.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-fn_update_dl() {
- # Download and extract files to serverfiles.
- fn_fetch_file "${remotebuildurl}" "" "" "" "${tmpdir}" "${remotebuildfilename}" "nochmodx" "norun" "force" "nohash"
- fn_dl_extract "${tmpdir}" "${remotebuildfilename}" "${serverfiles}"
- echo "${remotebuildversion}" > "${serverfiles}/build.txt"
- fn_clear_tmp
-}
-
-fn_update_localbuild() {
- # Gets local build info.
- fn_print_dots "Checking local build: ${remotelocation}"
- # Uses build file to get local build.
- localbuild=$(head -n 1 "${serverfiles}/build.txt" 2> /dev/null)
- if [ -z "${localbuild}" ]; then
- fn_print_error "Checking local build: ${remotelocation}: missing local build info"
- fn_script_log_error "Missing local build info"
- fn_script_log_error "Set localbuild to 0"
- localbuild="0"
- else
- fn_print_ok "Checking local build: ${remotelocation}"
- fn_script_log_pass "Checking local build"
- fi
-}
-
-fn_update_remotebuild() {
- # Get remote build info.
- apiurl="https://api.github.com/repos/OldUnreal/UnrealTournamentPatches/releases/latest"
- remotebuildresponse=$(curl -s "${apiurl}")
- remotebuildfilename=$(echo "${remotebuildresponse}" | jq -r '.assets[]|select(.browser_download_url | contains("Linux-amd64")) | .name')
- remotebuildurl=$(echo "${remotebuildresponse}" | jq -r '.assets[]|select(.browser_download_url | contains("Linux-amd64")) | .browser_download_url')
- remotebuildversion=$(echo "${remotebuildresponse}" | jq -r '.tag_name')
-
- if [ "${firstcommandname}" != "INSTALL" ]; then
- fn_print_dots "Checking remote build: ${remotelocation}"
- # Checks if remotebuildversion variable has been set.
- if [ -z "${remotebuildversion}" ] || [ "${remotebuildversion}" == "null" ]; then
- fn_print_fail "Checking remote build: ${remotelocation}"
- fn_script_log_fatal "Checking remote build"
- core_exit.sh
- else
- fn_print_ok "Checking remote build: ${remotelocation}"
- fn_script_log_pass "Checking remote build"
- fi
- else
- # Checks if remotebuild variable has been set.
- if [ -z "${remotebuildversion}" ] || [ "${remotebuildversion}" == "null" ]; then
- fn_print_failure "Unable to get remote build"
- fn_script_log_fatal "Unable to get remote build"
- core_exit.sh
- fi
- fi
-}
-
-fn_update_compare() {
- fn_print_dots "Checking for update: ${remotelocation}"
- if [ "${localbuild}" != "${remotebuildversion}" ] || [ "${forceupdate}" == "1" ]; then
- fn_print_ok_nl "Checking for update: ${remotelocation}"
- echo -en "\n"
- echo -e "Update available"
- echo -e "* Local build: ${red}${localbuild}${default}"
- echo -e "* Remote build: ${green}${remotebuildversion}${default}"
- if [ -n "${branch}" ]; then
- echo -e "* Branch: ${branch}"
- fi
- if [ -f "${rootdir}/.dev-debug" ]; then
- echo -e "Remote build info"
- echo -e "* apiurl: ${apiurl}"
- echo -e "* remotebuildfilename: ${remotebuildfilename}"
- echo -e "* remotebuildurl: ${remotebuildurl}"
- echo -e "* remotebuildversion: ${remotebuildversion}"
- fi
- echo -en "\n"
- fn_script_log_info "Update available"
- fn_script_log_info "Local build: ${localbuild}"
- fn_script_log_info "Remote build: ${remotebuildversion}"
- if [ -n "${branch}" ]; then
- fn_script_log_info "Branch: ${branch}"
- fi
- fn_script_log_info "${localbuild} > ${remotebuildversion}"
-
- if [ "${commandname}" == "UPDATE" ]; then
- unset updateonstart
- check_status.sh
- # If server stopped.
- if [ "${status}" == "0" ]; then
- fn_update_dl
- if [ "${localbuild}" == "0" ]; then
- exitbypass=1
- command_start.sh
- fn_firstcommand_reset
- exitbypass=1
- sleep 5
- command_stop.sh
- fn_firstcommand_reset
- fi
- # If server started.
- else
- fn_print_restart_warning
- exitbypass=1
- command_stop.sh
- fn_firstcommand_reset
- exitbypass=1
- fn_update_dl
- exitbypass=1
- command_start.sh
- fn_firstcommand_reset
- fi
- unset exitbypass
- date +%s > "${lockdir}/lastupdate.lock"
- alert="update"
- elif [ "${commandname}" == "CHECK-UPDATE" ]; then
- alert="check-update"
- fi
- alert.sh
- else
- fn_print_ok_nl "Checking for update: ${remotelocation}"
- echo -en "\n"
- echo -e "No update available"
- echo -e "* Local build: ${green}${localbuild}${default}"
- echo -e "* Remote build: ${green}${remotebuildversion}${default}"
- if [ -n "${branch}" ]; then
- echo -e "* Branch: ${branch}"
- fi
- echo -en "\n"
- fn_script_log_info "No update available"
- fn_script_log_info "Local build: ${localbuild}"
- fn_script_log_info "Remote build: ${remotebuildversion}"
- if [ -n "${branch}" ]; then
- fn_script_log_info "Branch: ${branch}"
- fi
- if [ -f "${rootdir}/.dev-debug" ]; then
- echo -e "Remote build info"
- echo -e "* apiurl: ${apiurl}"
- echo -e "* remotebuildfilename: ${remotebuildfilename}"
- echo -e "* remotebuildurl: ${remotebuildurl}"
- echo -e "* remotebuildversion: ${remotebuildversion}"
- fi
- fi
-}
-
-# The location where the builds are checked and downloaded.
-remotelocation="github.com"
-
-if [ "${firstcommandname}" == "INSTALL" ]; then
- fn_update_remotebuild
- fn_update_dl
-else
- fn_print_dots "Checking for update"
- fn_print_dots "Checking for update: ${remotelocation}"
- fn_script_log_info "Checking for update: ${remotelocation}"
- fn_update_localbuild
- fn_update_remotebuild
- fn_update_compare
-fi
diff --git a/lgsm/functions/update_vintagestory.sh b/lgsm/functions/update_vintagestory.sh
deleted file mode 100644
index 7307a4b770..0000000000
--- a/lgsm/functions/update_vintagestory.sh
+++ /dev/null
@@ -1,170 +0,0 @@
-#!/bin/bash
-# LinuxGSM update_vintagestory.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Handles updating of Vintage Story servers.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-fn_update_dl() {
- # Download and extract files to serverfiles.
- fn_fetch_file "${remotebuildurl}" "" "" "" "${tmpdir}" "${remotebuildfilename}" "nochmodx" "norun" "force" "${remotebuildhash}"
- fn_dl_extract "${tmpdir}" "${remotebuildfilename}" "${serverfiles}"
- fn_clear_tmp
-}
-
-fn_update_localbuild() {
- # Gets local build info.
- fn_print_dots "Checking local build: ${remotelocation}"
- # Uses executable to get local build.
- if [ -d "${executabledir}" ]; then
- cd "${executabledir}" || exit
- localbuild="$(${preexecutable} ${executable} --version | sed '/^[[:space:]]*$/d')"
- fi
- if [ -z "${localbuild}" ]; then
- fn_print_error "Checking local build: ${remotelocation}: missing local build info"
- fn_script_log_error "Missing local build info"
- fn_script_log_error "Set localbuild to 0"
- localbuild="0"
- else
- fn_print_ok "Checking local build: ${remotelocation}"
- fn_script_log_pass "Checking local build"
- fi
-}
-
-fn_update_remotebuild() {
- # Get remote build info.
- apiurl="http://api.vintagestory.at/stable-unstable.json"
- remotebuildresponse=$(curl -s "${apiurl}")
- if [ "${branch}" == "stable" ]; then
- remotebuildversion=$(echo "${remotebuildresponse}" | jq -r '[ to_entries[] ] | .[].key' | grep -Ev "\-rc|\-pre" | sort -r -V | head -1)
- else
- remotebuildversion=$(echo "${remotebuildresponse}" | jq -r '[ to_entries[] ] | .[].key' | grep -E "\-rc|\-pre" | sort -r -V | head -1)
- fi
- remotebuildfilename=$(echo "${remotebuildresponse}" | jq --arg remotebuildversion "${remotebuildversion}" -r '.[$remotebuildversion].server.filename')
- remotebuildurl=$(echo "${remotebuildresponse}" | jq --arg remotebuildversion "${remotebuildversion}" -r '.[$remotebuildversion].server.urls.cdn')
- remotebuildhash=$(echo "${remotebuildresponse}" | jq --arg remotebuildversion "${remotebuildversion}" -r '.[$remotebuildversion].server.md5')
-
- if [ "${firstcommandname}" != "INSTALL" ]; then
- fn_print_dots "Checking remote build: ${remotelocation}"
- # Checks if remotebuildversion variable has been set.
- if [ -z "${remotebuildversion}" ] || [ "${remotebuildversion}" == "null" ]; then
- fn_print_fail "Checking remote build: ${remotelocation}"
- fn_script_log_fatal "Checking remote build"
- core_exit.sh
- else
- fn_print_ok "Checking remote build: ${remotelocation}"
- fn_script_log_pass "Checking remote build"
- fi
- else
- # Checks if remotebuild variable has been set.
- if [ -z "${remotebuildversion}" ] || [ "${remotebuildversion}" == "null" ]; then
- fn_print_failure "Unable to get remote build"
- fn_script_log_fatal "Unable to get remote build"
- core_exit.sh
- fi
- fi
-}
-
-fn_update_compare() {
- fn_print_dots "Checking for update: ${remotelocation}"
- if [ "${localbuild}" != "${remotebuildversion}" ] || [ "${forceupdate}" == "1" ]; then
- fn_print_ok_nl "Checking for update: ${remotelocation}"
- echo -en "\n"
- echo -e "Update available"
- echo -e "* Local build: ${red}${localbuild}${default}"
- echo -e "* Remote build: ${green}${remotebuildversion}${default}"
- if [ -n "${branch}" ]; then
- echo -e "* Branch: ${branch}"
- fi
- if [ -f "${rootdir}/.dev-debug" ]; then
- echo -e "Remote build info"
- echo -e "* apiurl: ${apiurl}"
- echo -e "* remotebuildfilename: ${remotebuildfilename}"
- echo -e "* remotebuildurl: ${remotebuildurl}"
- echo -e "* remotebuildversion: ${remotebuildversion}"
- fi
- echo -en "\n"
- fn_script_log_info "Update available"
- fn_script_log_info "Local build: ${localbuild}"
- fn_script_log_info "Remote build: ${remotebuildversion}"
- if [ -n "${branch}" ]; then
- fn_script_log_info "Branch: ${branch}"
- fi
- fn_script_log_info "${localbuild} > ${remotebuildversion}"
-
- if [ "${commandname}" == "UPDATE" ]; then
- unset updateonstart
- check_status.sh
- # If server stopped.
- if [ "${status}" == "0" ]; then
- fn_update_dl
- if [ "${localbuild}" == "0" ]; then
- exitbypass=1
- command_start.sh
- fn_firstcommand_reset
- exitbypass=1
- sleep 5
- command_stop.sh
- fn_firstcommand_reset
- fi
- # If server started.
- else
- fn_print_restart_warning
- exitbypass=1
- command_stop.sh
- fn_firstcommand_reset
- exitbypass=1
- fn_update_dl
- exitbypass=1
- command_start.sh
- fn_firstcommand_reset
- fi
- unset exitbypass
- date +%s > "${lockdir}/lastupdate.lock"
- alert="update"
- elif [ "${commandname}" == "CHECK-UPDATE" ]; then
- alert="check-update"
- fi
- alert.sh
- else
- fn_print_ok_nl "Checking for update: ${remotelocation}"
- echo -en "\n"
- echo -e "No update available"
- echo -e "* Local build: ${green}${localbuild}${default}"
- echo -e "* Remote build: ${green}${remotebuildversion}${default}"
- if [ -n "${branch}" ]; then
- echo -e "* Branch: ${branch}"
- fi
- echo -en "\n"
- fn_script_log_info "No update available"
- fn_script_log_info "Local build: ${localbuild}"
- fn_script_log_info "Remote build: ${remotebuildversion}"
- if [ -n "${branch}" ]; then
- fn_script_log_info "Branch: ${branch}"
- fi
- if [ -f "${rootdir}/.dev-debug" ]; then
- echo -e "Remote build info"
- echo -e "* apiurl: ${apiurl}"
- echo -e "* remotebuildfilename: ${remotebuildfilename}"
- echo -e "* remotebuildurl: ${remotebuildurl}"
- echo -e "* remotebuildversion: ${remotebuildversion}"
- fi
- fi
-}
-
-# The location where the builds are checked and downloaded.
-remotelocation="vintagestory.at"
-
-if [ "${firstcommandname}" == "INSTALL" ]; then
- fn_update_remotebuild
- fn_update_dl
-else
- fn_print_dots "Checking for update"
- fn_print_dots "Checking for update: ${remotelocation}"
- fn_script_log_info "Checking for update: ${remotelocation}"
- fn_update_localbuild
- fn_update_remotebuild
- fn_update_compare
-fi
diff --git a/lgsm/modules/command_send.sh b/lgsm/modules/command_send.sh
index e3dafd6930..cf6a9f08a3 100644
--- a/lgsm/modules/command_send.sh
+++ b/lgsm/modules/command_send.sh
@@ -26,7 +26,7 @@ if [ "${status}" != "0" ]; then
fi
echo ""
fn_print_dots "Sending command to console: \"${commandtosend}\""
- tmux -L "${socketname}" send-keys -t "${servicename}" "${commandtosend}" ENTER
+ tmux -L "${socketname}" send-keys -t "${sessionname}" "${commandtosend}" ENTER
fn_print_ok_nl "Sending command to console: \"${commandtosend}\""
fn_script_log_pass "Command \"${commandtosend}\" sent to console"
else
diff --git a/lgsm/modules/core_dl.sh b/lgsm/modules/core_dl.sh
index 3b2e7f117c..caca0fc582 100644
--- a/lgsm/modules/core_dl.sh
+++ b/lgsm/modules/core_dl.sh
@@ -481,12 +481,8 @@ fn_fetch_file() {
fn_fetch_file_github() {
github_file_url_dir="${1}"
github_file_url_name="${2}"
- # For legacy versions - code can be removed at a future date
- if [ "${legacymode}" == "1" ]; then
- remote_fileurl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_file_url_dir}/${github_file_url_name}"
- remote_fileurl_backup="https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/${github_file_url_dir}/${github_file_url_name}"
# If master branch will currently running LinuxGSM version to prevent "version mixing". This is ignored if a fork.
- elif [ "${githubbranch}" == "master" ] && [ "${githubuser}" == "GameServerManagers" ] && [ "${commandname}" != "UPDATE-LGSM" ]; then
+ if [ "${githubbranch}" == "master" ] && [ "${githubuser}" == "GameServerManagers" ] && [ "${commandname}" != "UPDATE-LGSM" ]; then
remote_fileurl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${version}/${github_file_url_dir}/${github_file_url_name}"
remote_fileurl_backup="https://bitbucket.org/${githubuser}/${githubrepo}/raw/${version}/${github_file_url_dir}/${github_file_url_name}"
else
diff --git a/lgsm/modules/core_legacy.sh b/lgsm/modules/core_legacy.sh
index 7a7e554ed2..cf11e3a542 100644
--- a/lgsm/modules/core_legacy.sh
+++ b/lgsm/modules/core_legacy.sh
@@ -7,14 +7,6 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-# This is to help the transition to v20.3.0 and above
-legacy_versions_array=(v20.2.1 v20.2.0 v20.1.5 v20.1.4 v20.1.3 v20.1.2 v20.1.1 v20.1.0 v19.12.5 v19.12.4 v19.12.3 v19.12.2 v19.12.1 v19.12.0)
-for legacy_version in "${legacy_versions_array[@]}"; do
- if [ "${version}" == "${legacy_version}" ]; then
- legacymode=1
- fi
-done
-
if [ -z "${socketname}" ]; then
socketname="${sessionname}"
fi
@@ -43,69 +35,6 @@ if [ -n "${autosaveinterval}" ]; then
saveinterval="${autosaveinterval}"
fi
-if [ -z "${serverfiles}" ]; then
- serverfiles="${filesdir}"
-fi
-
-if [ -z "${logdir}" ]; then
- [ -n "${LGSM_LOGDIR}" ] && logdir="${LGSM_LOGDIR}" || logdir="${rootdir}/log"
-fi
-
-if [ -z "${lgsmlogdir}" ]; then
- lgsmlogdir="${scriptlogdir}"
-fi
-
-if [ -z "${lgsmlog}" ]; then
- lgsmlog="${scriptlog}"
-fi
-
-if [ -z "${lgsmlogdate}" ]; then
- lgsmlogdate="${scriptlogdate}"
-fi
-
-if [ -z "${steamcmddir}" ]; then
- steamcmddir="${HOME}/.steam/steamcmd"
-fi
-
-if [ -z "${lgsmdir}" ]; then
- lgsmdir="${rootdir}/lgsm"
-fi
-
-if [ -z "${tmpdir}" ]; then
- tmpdir="${lgsmdir}/tmp"
-fi
-
-if [ -z "${alertlog}" ]; then
- alertlog="${emaillog}"
-fi
-
-if [ -z "${servicename}" ]; then
- servicename="${selfname}"
-fi
-
-# Alternations to workshop variables.
-if [ -z "${wsapikey}" ]; then
- if [ "${workshopauth}" ]; then
- wsapikey="${workshopauth}"
- elif [ "${authkey}" ]; then
- wsapikey="${authkey}"
- fi
-fi
-
-if [ -z "${wscollectionid}" ]; then
- if [ "${workshopauth}" ]; then
- wscollectionid="${ws_collection_id}"
- elif [ "${authkey}" ]; then
- wscollectionid="${workshopcollectionid}"
- fi
-fi
-
-if [ -z "${wsstartmap}" ]; then
- if [ "${ws_start_map}" ]; then
- wscollectionid="${ws_start_map}"
- fi
-fi
-
# Added as part of migrating functions dir to modules dir.
# Will remove functions dir if files in modules dir older than 14 days
functionsdir="${lgsmdir}/modules"
diff --git a/linuxgsm.sh b/linuxgsm.sh
index 20adc1db69..395285c7b6 100755
--- a/linuxgsm.sh
+++ b/linuxgsm.sh
@@ -490,23 +490,6 @@ else
elif grep -qE "^[[:blank:]]*preexecutable=" "${configdirserver}/_default.cfg"; then
eval preexecutable="$(sed -nr 's/^ *preexecutable=(.*)$/\1/p' "${configdirserver}/_default.cfg")"
fi
-
- # For legacy configs that still use parms= 15.03.21
- if grep -qE "^[[:blank:]]*parms=" "${configdirserver}/secrets-${selfname}.cfg"; then
- eval parms="$(sed -nr 's/^ *parms=(.*)$/\1/p' "${configdirserver}/secrets-${selfname}.cfg")"
- elif grep -qE "^[[:blank:]]*parms=" "${configdirserver}/${selfname}.cfg"; then
- eval parms="$(sed -nr 's/^ *parms=(.*)$/\1/p' "${configdirserver}/${selfname}.cfg")"
- elif grep -qE "^[[:blank:]]*parms=" "${configdirserver}/secrets-common.cfg"; then
- eval parms="$(sed -nr 's/^ *parms=(.*)$/\1/p' "${configdirserver}/secrets-common.cfg")"
- elif grep -qE "^[[:blank:]]*parms=" "${configdirserver}/common.cfg"; then
- eval parms="$(sed -nr 's/^ *parms=(.*)$/\1/p' "${configdirserver}/common.cfg")"
- elif grep -qE "^[[:blank:]]*parms=" "${configdirserver}/_default.cfg"; then
- eval parms="$(sed -nr 's/^ *parms=(.*)$/\1/p' "${configdirserver}/_default.cfg")"
- fi
-
- if [ -n "${parms}" ]; then
- startparameters="${parms}"
- fi
}
# Load the linuxgsm.sh in to tmpdir. If missing download it.