From cc8b55b179fdda5e2b761c4f8c573cc77d664e68 Mon Sep 17 00:00:00 2001 From: Gordian Edenhofer Date: Mon, 29 Feb 2016 22:19:09 +0100 Subject: [PATCH] Upgpkg: 1.9-1 Make script and build files more easily adaptable for especially other flavors of minecraft servers. --- .SRCINFO | 2 +- PKGBUILD | 19 +++++++++++-------- minecraft-server.install | 19 ++++++++++--------- minecraftd.sh | 2 +- 4 files changed, 23 insertions(+), 19 deletions(-) diff --git a/.SRCINFO b/.SRCINFO index 20c7746..337262b 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -28,6 +28,6 @@ pkgbase = minecraft-server md5sums = fef6fadd0739ae03ff71ba61025be207 md5sums = cab358c32dd0d4d2463e60ee2996f658 md5sums = 54438e0c47cc5083e0a4376688b46092 - md5sums = 59bf34cc34f61fc36824620bf5e7f2fd + md5sums = aa1603e6c4090bfcf3177cb59b15bae8 pkgname = minecraft-server diff --git a/PKGBUILD b/PKGBUILD index 4eb1d6f..327961b 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -28,21 +28,24 @@ md5sums=('ff68834eee875bcf367422c67673207c' 'fef6fadd0739ae03ff71ba61025be207' 'cab358c32dd0d4d2463e60ee2996f658' '54438e0c47cc5083e0a4376688b46092' - '59bf34cc34f61fc36824620bf5e7f2fd') + 'aa1603e6c4090bfcf3177cb59b15bae8') + +_game="minecraft" +_server_root="/srv/minecraft" package() { - install -Dm644 minecraftd.conf "${pkgdir}/etc/conf.d/minecraft" - install -Dm755 minecraftd.sh "${pkgdir}/usr/bin/minecraftd" - install -Dm644 minecraftd.service "${pkgdir}/usr/lib/systemd/system/minecraftd.service" - install -Dm644 minecraftd-backup.service "${pkgdir}/usr/lib/systemd/system/minecraftd-backup.service" - install -Dm644 minecraftd-backup.timer "${pkgdir}/usr/lib/systemd/system/minecraftd-backup.timer" + install -Dm644 minecraftd.conf "${pkgdir}/etc/conf.d/${_game}" + install -Dm755 minecraftd.sh "${pkgdir}/usr/bin/${_game}d" + install -Dm644 minecraftd.service "${pkgdir}/usr/lib/systemd/system/${_game}d.service" + install -Dm644 minecraftd-backup.service "${pkgdir}/usr/lib/systemd/system/${_game}d-backup.service" + install -Dm644 minecraftd-backup.timer "${pkgdir}/usr/lib/systemd/system/${_game}d-backup.timer" install -Dm644 minecraft_server.${pkgver}.jar "${pkgdir}/srv/minecraft/minecraft_server.${pkgver}.jar" ln -s "minecraft_server.${pkgver}.jar" "${pkgdir}/srv/minecraft/minecraft_server.jar" # Link the log files mkdir -p "${pkgdir}/var/log/" - ln -s "/srv/minecraft/logs" "${pkgdir}/var/log/minecraft" #&>/dev/null + ln -s "${_server_root}/logs" "${pkgdir}/var/log/${_game}" # Give the group write permissions and set user or group ID on execution - chmod g+ws "${pkgdir}/srv/minecraft" + chmod g+ws "${pkgdir}${_server_root}" } diff --git a/minecraft-server.install b/minecraft-server.install index 96343b4..f420f55 100644 --- a/minecraft-server.install +++ b/minecraft-server.install @@ -1,3 +1,4 @@ +_game="minecraft" _user="minecraft" _server_root="/srv/minecraft" @@ -18,8 +19,8 @@ post_install() { echo -e "\e[34;1m==>\e[39;1m NOTE: The world data is stored under ${_server_root} and the server runs \e[0m" echo -e "\e[34;1m==>\e[39;1m as ${_user} user to increase security. \e[0m" - echo -e "\e[34;1m==>\e[39;1m NOTE: Use the minecraft script under /usr/bin/minecraftd to start, stop or backup the server \e[0m" - echo -e "\e[34;1m==>\e[39;1m and the configuration file under /etc/conf.d/minecraft to adjust it to your liking. \e[0m" + echo -e "\e[34;1m==>\e[39;1m NOTE: Use the ${_game} script under /usr/bin/${_game}d to start, stop or backup the server \e[0m" + echo -e "\e[34;1m==>\e[39;1m and the configuration file under /etc/conf.d/${_game} to adjust it to your liking. \e[0m" echo -e "\e[34;1m==>\e[39;1m NOTE: For the server to start you have to accept the EULA in ${_server_root}/eula.txt \e[0m" echo -e "\e[34;1m==>\e[39;1m which is generated after the first server start. \e[0m" } @@ -27,26 +28,26 @@ post_install() { post_upgrade() { chown -R ${_user}:${_user} "${_server_root}" - if [[ -f /etc/conf.d/minecraft.pacnew ]]; then + if [[ -f /etc/conf.d/${_game}.pacnew ]]; then echo -e "\e[34;1m==>\e[39;1m NOTE: There was a new change on how backup files are handled! Unfortunately this makes \e[0m" echo -e "\e[34;1m==>\e[39;1m old backups incompatible with the newly implemeted restore feature. Bare in mind that no data is lost \e[0m" echo -e "\e[34;1m==>\e[39;1m neither are those backups useless. They just will not work with the restore capability of the management script. \e[0m" - echo -e "\e[34;1m==>\e[39;1m NOTE: Please merge the new configuration file into /etc/conf.d/minecraft by e.g. using pacdiff. \e[0m" + echo -e "\e[34;1m==>\e[39;1m NOTE: Please merge the new configuration file into /etc/conf.d/${_game} by e.g. using pacdiff. \e[0m" fi } pre_remove() { - echo -e "\e[34;1m==>\e[39;1m Stopping and disabling minecraftd... \e[0m" - systemctl stop minecrafd.service - systemctl disable minecraftd.service + echo -e "\e[34;1m==>\e[39;1m Stopping and disabling ${_game}d... \e[0m" + systemctl stop ${_game}d.service + systemctl disable ${_game}d.service - /usr/bin/minecraftd stop > /dev/null + /usr/bin/${_game}d stop > /dev/null } post_remove() { # Notifying the user of kept dirs [[ -d "${_server_root}" ]] && chown -R root:root "${_server_root}" && echo -e "\e[34;1m==>\e[39;1m NOTE: Game saves in ${_server_root} were kept on your system.\e[0m" - [[ -f "/etc/conf.d/minecraft" ]] && echo -e "\e[34;1m==>\e[39;1m NOTE: Your configuration file /etc/conf.d/minecraft was kept on your system.\e[0m" + [[ -f "/etc/conf.d/${_game}" ]] && echo -e "\e[34;1m==>\e[39;1m NOTE: Your configuration file /etc/conf.d/${_game} was kept on your system.\e[0m" echo -e "\e[34;1m==>\e[39;1m Removing ${_user} system user and group... \e[0m" if getent passwd ${_user} >/dev/null 2>&1; then diff --git a/minecraftd.sh b/minecraftd.sh index a44d84e..e594bca 100755 --- a/minecraftd.sh +++ b/minecraftd.sh @@ -32,7 +32,7 @@ declare -r game="minecraft" [[ ! -z "${IDLE_IF_TIME}" ]] && declare -r IDLE_IF_TIME=${IDLE_IF_TIME} || IDLE_IF_TIME="1200" # Variables passed over the command line will always override the one from a config file -source /etc/conf.d/minecraft || echo "Could not source /etc/conf.d/minecraft" +source /etc/conf.d/${game} || echo "Could not source /etc/conf.d/${game}" # Check whether sudo is needed at all if [[ $(whoami) == ${GAME_USER} ]]; then