gameservergame-servergame-servershacktoberfestdedicated-game-serversgamelinuxgsmserverbashgaminglinuxmultiplayer-game-servershell
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.2 KiB
65 lines
2.2 KiB
#!/bin/bash
|
|
# LinuxGSM core_exit.sh module
|
|
# Author: Daniel Gibbs
|
|
# Contributors: https://linuxgsm.com/contrib
|
|
# Website: https://linuxgsm.com
|
|
# Description: Handles exiting of LinuxGSM by running and reporting an exit code.
|
|
|
|
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
|
|
|
|
fn_exit_dev_debug() {
|
|
if [ -f "${rootdir}/.dev-debug" ]; then
|
|
echo -e ""
|
|
echo -e "${moduleselfname} exiting with code: ${exitcode}"
|
|
if [ -f "${rootdir}/dev-debug.log" ]; then
|
|
grep -a "modulefile=" "${rootdir}/dev-debug.log" | sed 's/modulefile=//g' > "${rootdir}/dev-debug-module-order.log"
|
|
elif [ -f "${lgsmlogdir}/dev-debug.log" ]; then
|
|
grep -a "modulefile=" "${lgsmlogdir}/dev-debug.log" | sed 's/modulefile=//g' > "${rootdir}/dev-debug-module-order.log"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
# If running dependency check as root will remove any files that belong to root user.
|
|
if [ "$(whoami)" == "root" ]; 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}" -ne 0 ]; then
|
|
# List LinuxGSM version in logs
|
|
fn_script_log_info "LinuxGSM version: ${version}"
|
|
if [ "${exitcode}" -eq 1 ]; then
|
|
fn_script_log_fail "${moduleselfname} exiting with code: ${exitcode}"
|
|
elif [ "${exitcode}" -eq 2 ]; then
|
|
fn_script_log_error "${moduleselfname} exiting with code: ${exitcode}"
|
|
elif [ "${exitcode}" -eq 3 ]; then
|
|
fn_script_log_warn "${moduleselfname} exiting with code: ${exitcode}"
|
|
else
|
|
# if exit code is not set assume error.
|
|
fn_script_log_warn "${moduleselfname} exiting with code: ${exitcode}"
|
|
exitcode=4
|
|
fi
|
|
fn_exit_dev_debug
|
|
# remove trap.
|
|
trap - INT
|
|
exit "${exitcode}"
|
|
elif [ "${exitcode}" ] && [ "${exitcode}" -eq 0 ]; then
|
|
# List LinuxGSM version in logs
|
|
fn_script_log_info "LinuxGSM version: ${version}"
|
|
fn_script_log_pass "${moduleselfname} 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 "${moduleselfname} exiting with code: NOT SET"
|
|
fn_exit_dev_debug
|
|
# remove trap.
|
|
trap - INT
|
|
exit "${exitcode}"
|
|
fi
|
|
|