23 changed files with 581 additions and 833 deletions
@ -1,143 +0,0 @@ |
|||
#!/bin/bash |
|||
# LinuxGSM update_mumble.sh module |
|||
# Author: Daniel Gibbs |
|||
# Contributors: http://linuxgsm.com/contrib |
|||
# Website: https://linuxgsm.com |
|||
# Description: Handles updating of Mumble servers. |
|||
|
|||
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")" |
|||
|
|||
fn_update_mumble_dl(){ |
|||
fn_fetch_file "https://github.com/mumble-voip/mumble/releases/download/${remotebuild}/murmur-static_${mumblearch}-${remotebuild}.tar.bz2" "" "" "" "${tmpdir}" "murmur-static_${mumblearch}-${remotebuild}.tar.bz2" "" "norun" "noforce" "nohash" |
|||
fn_dl_extract "${tmpdir}" "murmur-static_${mumblearch}-${remotebuild}.tar.bz2" "${tmpdir}" |
|||
echo -e "copying to ${serverfiles}...\c" |
|||
cp -R "${tmpdir}/murmur-static_${mumblearch}-${remotebuild}/"* "${serverfiles}" |
|||
local exitcode=$? |
|||
if [ "${exitcode}" == "0" ]; then |
|||
fn_print_ok_eol_nl |
|||
fn_script_log_pass "Copying to ${serverfiles}" |
|||
fn_clear_tmp |
|||
else |
|||
fn_print_fail_eol_nl |
|||
fn_script_log_fatal "Copying to ${serverfiles}" |
|||
fn_clear_tmp |
|||
core_exit.sh |
|||
fi |
|||
} |
|||
|
|||
fn_update_mumble_localbuild(){ |
|||
# Gets local build info. |
|||
fn_print_dots "Checking local build: ${remotelocation}" |
|||
# Uses executable to find local build. |
|||
cd "${executabledir}" || exit |
|||
if [ -f "${executable}" ]; then |
|||
localbuild=$(${executable} -version 2>&1 >/dev/null | awk '{print $5}') |
|||
fn_print_ok "Checking local build: ${remotelocation}" |
|||
fn_script_log_pass "Checking local build" |
|||
else |
|||
localbuild="0" |
|||
fn_print_error "Checking local build: ${remotelocation}" |
|||
fn_script_log_error "Checking local build" |
|||
fi |
|||
} |
|||
|
|||
fn_update_mumble_remotebuild(){ |
|||
# Gets remote build info. |
|||
remotebuild=$(curl -s "https://api.github.com/repos/mumble-voip/mumble/releases/latest" | grep 'murmur-static_x86.*\.bz2"' | tail -1 | awk -F"/" '{ print $8 }') |
|||
if [ "${firstcommandname}" != "INSTALL" ]; then |
|||
fn_print_dots "Checking remote build: ${remotelocation}" |
|||
# Checks if remotebuild variable has been set. |
|||
if [ -z "${remotebuild}" ]||[ "${remotebuild}" == "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 "${remotebuild}" ]||[ "${remotebuild}" == "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_mumble_compare(){ |
|||
# Removes dots so if statement can compare version numbers. |
|||
fn_print_dots "Checking for update: ${remotelocation}" |
|||
localbuilddigit=$(echo -e "${localbuild}" | tr -cd '[:digit:]') |
|||
remotebuilddigit=$(echo -e "${remotebuild}" | tr -cd '[:digit:]') |
|||
if [ "${localbuilddigit}" -ne "${remotebuilddigit}" ]||[ "${forceupdate}" == "1" ]; then |
|||
fn_print_ok_nl "Checking for update: ${remotelocation}" |
|||
echo -en "\n" |
|||
echo -e "Update available" |
|||
echo -e "* Local build: ${red}${localbuild} ${mumblearch}${default}" |
|||
echo -e "* Remote build: ${green}${remotebuild} ${mumblearch}${default}" |
|||
echo -en "\n" |
|||
fn_script_log_info "Update available" |
|||
fn_script_log_info "Local build: ${localbuild} ${mumblearch}" |
|||
fn_script_log_info "Remote build: ${remotebuild} ${mumblearch}" |
|||
fn_script_log_info "${localbuild} > ${remotebuild}" |
|||
|
|||
unset updateonstart |
|||
check_status.sh |
|||
# If server stopped. |
|||
if [ "${status}" == "0" ]; then |
|||
exitbypass=1 |
|||
fn_update_mumble_dl |
|||
if [ "${requirerestart}" == "1" ]; then |
|||
exitbypass=1 |
|||
command_start.sh |
|||
fn_firstcommand_reset |
|||
exitbypass=1 |
|||
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_mumble_dl |
|||
exitbypass=1 |
|||
command_start.sh |
|||
fn_firstcommand_reset |
|||
fi |
|||
unset exitbypass |
|||
date +%s > "${lockdir}/lastupdate.lock" |
|||
alert="update" |
|||
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} ${mumblearch}${default}" |
|||
echo -e "* Remote build: ${green}${remotebuild} ${mumblearch}${default}" |
|||
echo -en "\n" |
|||
fn_script_log_info "No update available" |
|||
fn_script_log_info "Local build: ${localbuild} ${mumblearch}" |
|||
fn_script_log_info "Remote build: ${remotebuild} ${mumblearch}" |
|||
fi |
|||
} |
|||
|
|||
# The location where the builds are checked and downloaded. |
|||
remotelocation="mumble.info" |
|||
|
|||
# Game server architecture. |
|||
mumblearch="x86" |
|||
|
|||
if [ "${firstcommandname}" == "INSTALL" ]; then |
|||
fn_update_mumble_remotebuild |
|||
fn_update_mumble_dl |
|||
else |
|||
fn_print_dots "Checking for update: ${remotelocation}" |
|||
fn_script_log_info "Checking for update: ${remotelocation}" |
|||
fn_update_mumble_localbuild |
|||
fn_update_mumble_remotebuild |
|||
fn_update_mumble_compare |
|||
fi |
Loading…
Reference in new issue