nalc-server/shutdown.sh

81 řádky
1.8 KiB
Bash
Executable File

#!/bin/bash
# Author: Sys4
# Licence: GPLv3
serverpath=/home/minetest/nalc-stable
world=nalc-stable
world_file=all # news|technic|fbn|fbnp|bitchange|christmas|randommsg
branch=stable # 1.0|1.1|dev
mountpoint=/mnt/demonix.fr
mapdest=$mountpoint/www
bak=0
update=0
restart=0
regenmap=0
usage() {
echo "usage: ./shutdown.sh [-h|--help] [-r|--restart] [-b|--bak] [-u|--update]"
echo "Options:"
echo -e "\t-h --help\tAffiche cette aide."
echo -e "\t-r --restart\tRedémarre le serveur après arrêt."
echo -e "\t-b --bak\tRéalise une sauvegarde après arrêt."
echo -e "\t-u --update\tRéalise une mise à jour après arrêt."
echo -e "\t-m --regen-map\tRégénère une carte du monde."
exit 0
}
action() {
kill -s TERM $(pidof minetestserver)
sleep 10
kill -s TERM $(pidof -x $serverpath/start.sh)
[[ $bak -eq 1 ]] && $serverpath/backup.sh
if [ $regenmap -eq 1 ]; then
mount $mountpoint
sleep 3
$serverpath/genmap.sh $serverpath $world $mapdest
umount $mountpoint
fi
[[ $update -eq 1 ]] && $serverpath/upgrade.sh -s $serverpath -m -w $world -b $branch -f $world_file
[[ $restart -eq 1 ]] && $serverpath/start.sh&
exit 0
}
# Pas de paramètre
#[[ $# -lt 1 ]] && error
# ou
[[ $# -lt 1 ]] && action
# -o : Options courtes
# -l : options longues
OPT=$(getopt -o b,r,h,u,m -l bak,restart,help,update,regen-map -- "$@")
# éclatement de $options en $1, $2...
set -- $OPT
while true; do
case "$1" in
-b|--bak)
bak=1
shift;;
-r|--restart)
restart=1
shift;;
-h|--help)
usage;;
-u|--update)
update=1
shift;;
-m|--regen-map)
regenmap=1
shift;;
--)
shift;;
*)
action
shift;;
esac
done