From 7ce0a58314ab66f1005b98e0feb81d18d19a47ec Mon Sep 17 00:00:00 2001 From: sys4-fr Date: Sat, 31 Mar 2018 16:13:41 +0200 Subject: [PATCH 1/2] Update install script --- install.sh | 76 ++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 60 insertions(+), 16 deletions(-) diff --git a/install.sh b/install.sh index 831230e..4cc2dda 100755 --- a/install.sh +++ b/install.sh @@ -77,7 +77,7 @@ postgresql() { install_0.4() { if [[ -d server-0.4 ]]; then echo "Installation précédente détecté. Voulez-vous faire la mise à jour ?" - read -p "Continuer ? (y or n) " continuer + read -p "Votre choix ? (y, n, clean) " continuer if [[ $continuer == "y" ]]; then cd server-0.4 git pull @@ -85,6 +85,14 @@ install_0.4() { git submodule update --remote --recursive verif cd .. + elif [[ $continuer == "clean" ]]; then + rm -rf server-0.4 + git clone https://github.com/sys4-fr/server-nalc.git server-0.4 + verif + cd server-0.4 + git submodule update --init --recursive + verif + cd .. else echo "Mise à jour annulé." fi @@ -128,11 +136,11 @@ install_minetest() { fi if [[ ! -d minetest ]]; then + local branch="-b master" if [[ $ver == "0.4" ]]; then - git clone -b backport-0.4 https://github.com/minetest/minetest.git - else - git clone $URL/minetest.git + branch="-b backport-0.4" fi + git clone $branch $URL/minetest.git verif fi @@ -146,7 +154,7 @@ install_minetest() { } install_minetest_game() { - if [[ -d minetest_game && ! $ver == "0.4" ]]; then + if [[ -d minetest_game ]]; then echo "Installation précédente du jeux Minetest détecté." read -p "Mettre à jour ? (y,n,clean,cancel) " continue if [[ $continue == "y" ]]; then @@ -172,21 +180,16 @@ install_minetest_game() { fi if [[ ! -d minetest_game ]]; then + local branch="-b master" if [[ ! $ver == "0.4" ]]; then - git clone $URL/minetest_game.git - verif - echo "Clonage de minetest_game terminé." - else - ln -s $(pwd)/server-0.4/minetest_game minetest_game + branch="-b backport-0.4" fi - elif [[ $ver == "0.4" ]]; then - if [[ -a minetest_game ]]; then - rm minetest_game - fi - ln -s $(pwd)/server-0.4/minetest_game minetest_game + git clone $branch $URL/minetest_game.git + verif + echo "Clonage de minetest_game terminé." fi - if [[ ! -a minetest/games/minetest_game ]]; then + if [[ ! -L minetest/games/minetest_game ]]; then ln -s $(pwd)/minetest_game minetest/games/minetest_game echo "Lien symbolique minetest/games/minetest_game vers $(pwd)/minetest_game créé." fi @@ -218,6 +221,11 @@ install_world() { if [[ ! -d minetest/worlds/nalc ]]; then mkdir -p minetest/worlds/nalc + if [[ -n $pg_dbname ]]; then + createdb $pg_dbname + createdb players-$pg_dbname + fi + if [[ $ver == "0.4" ]]; then ln -s $(pwd)/server-0.4/worlds/minetestforfun/world.mt minetest/worlds/nalc/world.mt else @@ -228,10 +236,46 @@ install_world() { install_mods() { if [[ $ver == "0.4" ]]; then + local i=0 + local md[1]="" # Mods to disable + for mod in "mysql_auth watershed mobs_old magicmithril obsidian eventobjects player_inactive random_messages irc irc_commands profilerdumper profnsched"; do + i=$(( $i+1 )) + md[$i]=$mod + done + if [[ -d minetest/mods ]]; then rm -rf minetest/mods ln -s $(pwd)/server-0.4/mods minetest/mods fi + + if [[ -a world.mt ]]; then + rm world.mt + fi + cp worldmt.conf world.mt + + ls server-0.4/mods | while read -r mod; do + if [[ -a server-0.4/mods/$mod/modpack.txt ]]; then + ls server-0.4/mods/$mod | while read -r submod; do + if [[ -d server-0.4/mods/$mod/$submod ]]; then + local mod_enable="true" + for (( modn=1; modn<$i; modn++ )); do + if [[ ${md[$modn]} == $submod ]]; then + mod_enable="false" + fi + done + echo "load_mod_$submod = $mod_enable" >> world.mt + fi + done + else + local mod_enable="true" + for (( modn=1; modn<$i; modn++ )); do + if [[ ${md[$modn]} == $mod ]]; then + mod_enable="false" + fi + done + echo "load_mod_$mod = $mod_enable" >> world.mt + fi + done else if [[ -d nalc-server-mods ]]; then echo "Le dossier de mods est déjà présent. Que souhaitez-vous faire ?" From a03e3de74337f29e9a1953361cf942b7c65afebe Mon Sep 17 00:00:00 2001 From: sys4 Date: Sun, 1 Apr 2018 05:18:01 +0200 Subject: [PATCH 2/2] Update scripts --- backup.sh | 31 +++++++++++++++++++++++++++++++ install.sh | 37 ++++++++++++++++--------------------- 2 files changed, 47 insertions(+), 21 deletions(-) create mode 100755 backup.sh diff --git a/backup.sh b/backup.sh new file mode 100755 index 0000000..3080970 --- /dev/null +++ b/backup.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +bak=/home/minetest/nalc-server-0.4/backup +if [[ ! -d $bak ]]; then + mkdir $bak +fi + +bak_tmp=/var/tmp/nalc-0.4_dump +if [[ ! -d $bak_tmp ]]; then + mkdir $bak_tmp +fi + +rm -r /home/minetest/nalc-server-0.4/minetest/worlds/nalc/rollback.sqlite +tar -I pbzip2 -cvf $bak/world.tar.bz2 /home/minetest/nalc-server-0.4/minetest/worlds/nalc + +pg_dump nalc-0.4 > $bak_tmp/nalc-0.4.sql +pg_dump players-nalc-0.4 > $bak_tmp/players-nalc-0.4.sql + +if [[ -e $bak/dump_sql.tar.bz2 ]]; then + cd $bak + tar -jxvf dump_sql.tar.bz2 + cd .. +fi + +rdiff-backup --no-file-statistics $bak_tmp $bak + +cd $bak +tar -I pbzip2 -cvf dump_sql.tar.bz2 --remove-files *.sql +cd .. + +rm -rf $bak_tmp diff --git a/install.sh b/install.sh index 4cc2dda..cf1e175 100755 --- a/install.sh +++ b/install.sh @@ -25,9 +25,9 @@ usage() { echo "--makeopt | -j : Passer des options à make." echo "--ssh : Identifiants ssh." echo "--url : URL distante personnalisée." + echo -e "\tSi l'option --ssh est passée en option, il s'agira du chemin distant." echo "--irrlicht | -i : Chemin personnalisé des sources irrlicht." echo "--postgresql | -p : Si vous voulez que le serveur soit configuré avec postgresql" - echo -e "\tSi l'option --ssh est passée en option, il s'agira du chemin distant." echo "Commandes :" echo -e "\t0.5 : Installation du serveur avec minetest-0.5.x. Suivez les instructions..." echo -e "\t0.4 : Installation du serveur avec minetest-0.4.x. Suivez les instructions..." @@ -67,11 +67,11 @@ postgresql() { read -p "Indiquez le mot de passe : " pg_password read -p "Indiquez le nom de la BDD à utiliser : " pg_dbname - echo "gameid = minetest_game" > worldmt.conf - echo "backend = postgresql" >> worldmt.conf - echo "player_backend = postgresql" >> worldmt.conf - echo "pgsql_connection = host=$pg_url user=$pg_user password=$pg_password dbname=$pg_dbname" >> worldmt.conf - echo "pgsql_player_connection = host=$pg_url user=$pg_user password=$pg_password dbname=players-$pg_dbname" >> worldmt.conf + echo "gameid = minetest_game" > world.mt + echo "backend = postgresql" >> world.mt + echo "player_backend = postgresql" >> world.mt + echo "pgsql_connection = host=$pg_url user=$pg_user password=$pg_password dbname=$pg_dbname" >> world.mt + echo "pgsql_player_connection = host=$pg_url user=$pg_user password=$pg_password dbname=players-$pg_dbname" >> world.mt } install_0.4() { @@ -181,7 +181,7 @@ install_minetest_game() { if [[ ! -d minetest_game ]]; then local branch="-b master" - if [[ ! $ver == "0.4" ]]; then + if [[ $ver == "0.4" ]]; then branch="-b backport-0.4" fi git clone $branch $URL/minetest_game.git @@ -226,11 +226,7 @@ install_world() { createdb players-$pg_dbname fi - if [[ $ver == "0.4" ]]; then - ln -s $(pwd)/server-0.4/worlds/minetestforfun/world.mt minetest/worlds/nalc/world.mt - else - ln -s $(pwd)/world.mt minetest/worlds/nalc/world.mt - fi + ln -s $(pwd)/world.mt minetest/worlds/nalc/world.mt fi } @@ -238,7 +234,7 @@ install_mods() { if [[ $ver == "0.4" ]]; then local i=0 local md[1]="" # Mods to disable - for mod in "mysql_auth watershed mobs_old magicmithril obsidian eventobjects player_inactive random_messages irc irc_commands profilerdumper profnsched"; do + for mod in mysql_auth watershed mobs_old magicmithril obsidian eventobjects player_inactive random_messages irc irc_commands profilerdumper profnsched; do i=$(( $i+1 )) md[$i]=$mod done @@ -248,17 +244,17 @@ install_mods() { ln -s $(pwd)/server-0.4/mods minetest/mods fi - if [[ -a world.mt ]]; then + if [[ -a world.mt && -z $pg_dbname ]]; then rm world.mt + cp worldmt.conf world.mt fi - cp worldmt.conf world.mt - + ls server-0.4/mods | while read -r mod; do if [[ -a server-0.4/mods/$mod/modpack.txt ]]; then ls server-0.4/mods/$mod | while read -r submod; do if [[ -d server-0.4/mods/$mod/$submod ]]; then local mod_enable="true" - for (( modn=1; modn<$i; modn++ )); do + for (( modn=1; modn<=$i; modn++ )); do if [[ ${md[$modn]} == $submod ]]; then mod_enable="false" fi @@ -268,7 +264,7 @@ install_mods() { done else local mod_enable="true" - for (( modn=1; modn<$i; modn++ )); do + for (( modn=1; modn<=$i; modn++ )); do if [[ ${md[$modn]} == $mod ]]; then mod_enable="false" fi @@ -306,12 +302,11 @@ install_mods() { # Recréation des liens symboliques et du fichier world.mt (dans tous les cas) rm minetest/mods/* - if [[ -a world.mt ]]; then + if [[ -a world.mt && -z $pg_dbname ]]; then rm world.mt + cp worldmt.conf world.mt fi - cp worldmt.conf world.mt - if [[ -d custom/mods ]]; then ls custom/mods | while read -r mod; do if [[ -d custom/mods/$mod ]]; then