Ajout du script upgrade.sh

This commit is contained in:
sys4-fr 2018-03-16 23:47:34 +01:00
parent 5cf1a04c01
commit 874c473670
3 changed files with 150 additions and 43 deletions

View File

@ -7,33 +7,37 @@ verif() {
fi fi
} }
# Affichage de l'aide si demandé en paramètres error() {
if [[ $1 = "--help" ]]; then echo "ERREUR : paramètres invalides !" >&2
echo "Usage : ./install.sh [options]" echo "utilisez l'option -h pour en savoir plus" >&2
echo "" exit 1
echo "Options :" }
echo "--help : Cette aide"
echo "--git-user <utilisateur@serveur> : Utilisateur git"
exit 0
fi
# Récupération de l'utilisateur du dépot git usage() {
if [[ $1 = "--git-user" ]] && [[ -n $2 ]]; then echo "Usage : ./install.sh [options]"
USER=$2\: 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 else
USER="https://sys4.fr/gogs/" ident="https://sys4.fr/gogs/"
fi fi
# On clone le dépot du moteur du jeux Minetest à la racine # On clone le dépot du moteur du jeux Minetest à la racine
git clone $USER"NotreAmiLeCube/minetest.git" git clone $ident"NotreAmiLeCube/minetest.git"
verif verif
# On clone le dépot du sous-jeux minetest_game à la racine # On clone le dépot du sous-jeux minetest_game à la racine
git clone $USER"NotreAmiLeCube/minetest_game.git" git clone $ident"NotreAmiLeCube/minetest_game.git"
verif verif
# On clone les mods de nalc à la racine # On clone les mods de nalc à la racine
git clone $USER"NotreAmiLeCube/nalc-server-mods.git" git clone $ident"NotreAmiLeCube/nalc-server-mods.git"
verif verif
# On initialise les sous-modules du dépot des mods # On initialise les sous-modules du dépot des mods
@ -43,7 +47,7 @@ git submodule update --init --recursive
# On créé les liens symboliques nécessaires # On créé les liens symboliques nécessaires
cd .. cd ..
ln -s $(pwd)/minetest_game minetest/games/minetest_game ln -s $(pwd)/minetest_game minetest/games/minetest_game
while [ -r mod ] while read -r mod
do do
ln -s $(pwd)/nalc-server-mods/$mod minetest/mods/$mod ln -s $(pwd)/nalc-server-mods/$mod minetest/mods/$mod
done <<< $(ls nalc-server-mods) done <<< $(ls nalc-server-mods)
@ -52,12 +56,56 @@ done <<< $(ls nalc-server-mods)
# Création du répertoire de la map # Création du répertoire de la map
mkdir -p minetest/world/nalc mkdir -p minetest/world/nalc
# TODO Lien symbolique world.mt
#ln -s ($pwd)/world.mt minetest/world/nalc/world.mt
# Compilation de Minetest # Compilation de Minetest
cd minetest cd minetest
cmake . -DRUN_IN_PLACE=true -DENABLE_GETTEXT=true cmake . -DRUN_IN_PLACE=true -DENABLE_GETTEXT=true
make -j33 make -j33
verif
cd ..
exec ./upgrade.sh --mods-link
echo "Installation terminé. Bravo !" echo "Installation terminé. Bravo !"
}
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

54
upgrade.sh Executable file
View File

@ -0,0 +1,54 @@
#!/bin/bash
verif() {
if [[ $? -gt 0 ]]; then
echo "Erreur ! Arrêt du script."
exit 1
fi
}
# Affichage de l'aide si demandé en paramètres
if [[ $1 = "--help" ]]; then
echo "Usage : ./upgrade.sh [options]"
echo ""
echo "Options :"
echo "--help : Cette aide"
echo "--mods-link : Met à jour les liens symboliques des mods seulement"
exit 0
fi
# Mise à jour de tous les liens symboliques des mods
if [[ $1 == "--mods-link" ]]; then
# Suppression des liens
rm minetest/mods/*
# Supression du world.mt
rm world.mt
# Création du fichier world.mt depuis sa conf
cp worldmt.conf world.mt
# Création des liens
while read -r mod
do
if [[ -d nalc-server-mods/$mod ]]; then
ln -s $(pwd)/nalc-server-mods/$mod minetest/mods/$mod
# Ajout dans world.mt
if [[ -a nalc-server-mods/$mod/modpack.txt ]]; then
while read -r submod
do
echo "load_mod_"$submod" = true" >> world.mt
done <<< $(ls nalc-server-mods/$mod)
else
echo "load_mod_"$mod" = true" >> world.mt
fi
fi
done <<< $(ls nalc-server-mods)
# Lien symbolique world.mt
if [[ ! -a minetest/world/nalc/world.mt ]]; then
ln -s $(pwd)/world.mt minetest/world/nalc/world.mt
fi
fi
exit 0

5
worldmt.conf Normal file
View File

@ -0,0 +1,5 @@
gameid = minetest_game
backend = redis
redis_hash = nalc
redis_address = localhost