nalc-server/genmap.sh

85 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
# Author: Sys4
# Licence: GPLv3
# Script pour automatiser la création de la carte de nalc
strip() {
echo "$1" | cut -d \' -f 2
}
verif() {
if [ $? -gt 0 ]; then
echo "Erreur ! Arrêt du script."
exit 1
fi
}
error() {
if [ -n "$1" ]; then
echo "ERREUR : $1 !"
else
echo "ERREUR : paramètres invalides !" >&2
echo "utilisez l'option -h pour en savoir plus" >&2
fi
exit 1
}
usage() {
echo "Usage : ./genmap.sh [-h|--help] server_path worldname destination_path"
echo "Génère la carte de nalc vers le fichier destination_path/nalc_map.png"
}
action() {
[ -z "$1" ] && error "Argument manquant"
local serverpath=$(strip "$1")
[ ! -d "$serverpath" ] && error "Le répertoire $serverpath n'existe pas"
[ -z "$2" ] && error "Nom du world manquant"
local world_name=$(strip "$2")
local world="$serverpath/minetest/worlds/$world_name"
[ ! -d "$world" ] && error "Le répertoire $world n'existe pas"
[ -z "$3" ] && error "Chemin de destination manquant"
local destination=$(strip "$3")
[ ! -d "$destination" ] && error "Le répertoire $destination n'existe pas"
[ ! -d "$serverpath/minetestmapper" ] && error "minetestmapper ne semble pas installé"
[ ! -e "$serverpath/colors.txt" ] && error "$serverpath/colors.txt manquant"
pushd "$serverpath/minetestmapper"
./minetestmapper -i "$world" -o /tmp/nalc_map.png --colors "$serverpath/colors.txt" --min-y -25 --max-y 300 --geometry -5000:-5000+10000+10000
verif
popd
mv /tmp/nalc_map.png "$destination/"
verif
}
# Pas de paramètre
[[ $# -lt 1 ]] && usage
# -o : Options courtes
# -l : Options longues
options=$(getopt -o h -l help -- "$@")
# Éclatement de $options en $1, $2...
set -- $options
while true; do
case "$1" in
-h|--help)
usage
exit 0;;
--)
shift;;
*)
action $1 $2 $3
exit 0
shift;;
esac
done
exit 0