From 2d367a746a4a3119f039d4e299299defcd7dca77 Mon Sep 17 00:00:00 2001 From: Gordian Edenhofer Date: Mon, 14 Dec 2015 11:51:31 +0100 Subject: [PATCH] Bugfix + Cleaner server_command handling Fix a bug which was introduced by the new indentation (cat EOF). Tailf which is used to retrieve the server output closes itself as soon as the minecraft command is triggered. Since this functionality is build into tailf there is no need to reinvent the wheel. --- .SRCINFO | 2 +- PKGBUILD | 2 +- minecraftd.sh | 23 ++++++++++------------- 3 files changed, 12 insertions(+), 15 deletions(-) mode change 100644 => 100755 minecraftd.sh diff --git a/.SRCINFO b/.SRCINFO index b3f9bd9..2f7af36 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -27,7 +27,7 @@ pkgbase = minecraft-server md5sums = c644abdf293c2f98033a64d732a4945c md5sums = 5ed78e366146e47f8498347e93ad5423 md5sums = d4656f27716fd78ab64344a517b07443 - md5sums = 1991eb0aedeba1dab2371f22a6736b47 + md5sums = 9011b19dc6218d41989835a6bba033e0 pkgname = minecraft-server diff --git a/PKGBUILD b/PKGBUILD index 506ee10..fae0ba7 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -26,7 +26,7 @@ md5sums=('a0671390aa0691e70a950155aab06ffb' 'c644abdf293c2f98033a64d732a4945c' '5ed78e366146e47f8498347e93ad5423' 'd4656f27716fd78ab64344a517b07443' - '1991eb0aedeba1dab2371f22a6736b47') + '9011b19dc6218d41989835a6bba033e0') package() { install -Dm644 minecraftd.conf "${pkgdir}/etc/conf.d/minecraft" diff --git a/minecraftd.sh b/minecraftd.sh old mode 100644 new mode 100755 index 398e29e..ef7dafe --- a/minecraftd.sh +++ b/minecraftd.sh @@ -130,11 +130,8 @@ server_command() { sudo -u ${MC_USER} screen -S ${SESSION_NAME} -Q select . > /dev/null if [ $? -eq 0 ]; then - mc_command "$@" - tailf -n 0 ${LOGPATH}/latest.log & - TAILFPID=$! # Process id of tailf command - sleep 0.1 - kill ${TAILFPID} + mc_command "$@" & + tailf --pid=$! -n 0 ${LOGPATH}/latest.log & else echo "There is no ${SESSION_NAME} session to connect to." fi @@ -152,18 +149,18 @@ server_console() { # Help function, no arguments required help() { - cat << 'EOF' + cat <<- 'EOF' This script was design to easily control any minecraft server. Quite every parameter for a given minecraft server derivative can be altered by editing the variables in the configuration file. Usage: minecraftd {start|stop|status|backup|command |console} - start Start the minecraft server - stop Stop the minecraft server - restart Restart the minecraft server - status Print some status information - backup Backup the world data - command Run the given comman at the minecraft server console - console Enter the server console through a screen session + start Start the minecraft server + stop Stop the minecraft server + restart Restart the minecraft server + status Print some status information + backup Backup the world data + command Run the given comman at the minecraft server console + console Enter the server console through a screen session Copyright (c) Gordian Edenhofer EOF