nalc-server/install.sh

112 lines
2.3 KiB
Bash
Raw Normal View History

2018-03-15 23:49:09 +01:00
#!/bin/bash
verif() {
if [[ $? -gt 0 ]]; then
echo "Erreur ! Arrêt du script."
exit 1
fi
}
2018-03-16 23:47:34 +01:00
error() {
echo "ERREUR : paramètres invalides !" >&2
echo "utilisez l'option -h pour en savoir plus" >&2
exit 1
}
usage() {
2018-03-15 23:49:09 +01:00
echo "Usage : ./install.sh [options]"
2018-03-16 23:47:34 +01:00
echo "--help ou -h : Afficher l'aide"
echo "--ssh : Authentification par ssh"
echo "--https : Authentification publique anonyme"
}
install() {
if [[ $1 == "ssh" ]]; then
read -p "Please enter <username>@<host> : " ident
ident=$ident\:
else
ident="https://sys4.fr/gogs/"
fi
# On clone le dépot du moteur du jeux Minetest à la racine
git clone $ident"NotreAmiLeCube/minetest.git"
verif
# On clone le dépot du sous-jeux minetest_game à la racine
git clone $ident"NotreAmiLeCube/minetest_game.git"
verif
# On clone les mods de nalc à la racine
git clone $ident"NotreAmiLeCube/nalc-server-mods.git"
verif
# On initialise les sous-modules du dépot des mods
cd nalc-server-mods
git submodule update --init --recursive
# On créé les liens symboliques nécessaires
cd ..
ln -s $(pwd)/minetest_game minetest/games/minetest_game
while read -r mod
do
ln -s $(pwd)/nalc-server-mods/$mod minetest/mods/$mod
done <<< $(ls nalc-server-mods)
# TODO Lien symbolique minetest.conf
# Création du répertoire de la map
mkdir -p minetest/worlds/nalc
2018-03-16 23:47:34 +01:00
# Compilation de Minetest
cd minetest
cmake . -DRUN_IN_PLACE=true -DENABLE_GETTEXT=true
make -j33
verif
cd ..
echo "Installation terminé."
echo "Mise à jour des mods..."
exec ./upgrade.sh --mods-link
2018-03-16 23:47:34 +01:00
}
sshinstall() {
if [[ -z `pidof ssh-agent` ]]; then
echo "Exécutez les commandes suivantes :"
echo "$ eval \`ssh-agent -s\`"
echo "$ ssh-add <chemin vers votre clé privé>"
echo "Relancez de nouveau le script : ./install.sh --ssh"
exit 0
fi
install "ssh"
}
# Pas de paramètre
[[ $# -lt 1 ]] && error
# -o : Options courtes
# -l : options longues
options=$(getopt -o h -l help,https,ssh -- "$@")
# éclatement de $options en $1, $2...
set -- $options
while true; do
case "$1" in
--ssh) sshinstall
#shift 2;;
exit 0;;
--https) install
#shift;;
exit 0;;
-h|--help) usage
exit 0;;
--)
shift
break;;
*) error
shift;;
esac
done