ScoDoc/config/migre-7-a-8.sh

70 lines
1.9 KiB
Bash

#!/bin/bash
# Migration vers ScoDoc 8
#
# E. Viennet, dec 2020
#
# Passe l'installation courante de ScoDoc 7 à ScoDoc 8
# A ce jour, ScoDoc 8 n'est pas recommandé en production !
#
# - l'installation ScoDoc 7 doit être à jour.
# - passe de SVN à GIT: pas de retour en arrière.
# - déplace la config de config/scodoc_config.py
# vers /opt/scodoc/var/scodoc/config/scodoc_local.py
source config.sh
source utils.sh
check_uid_root "$0"
scodocctl stop
scodoc7=/opt/ScoDoc7
if [ -e "$scodoc7" ]
then
echo "/opt/ScoDoc7 already exists. Move or remove it before retrying."
exit 1;
fi
# 0- Upgrade and check local config
cd "$SCODOC_DIR" || { echo "Fatal error: can't cd to $SCODOC_DIR"; exit 2; }
svn up || { echo "Fatal error: can't apply last svn up"; exit 3; }
local_config_diff=$(svn diff config/scodoc_config.py | wc -l)
# 1- Install git
apt-get update
apt-get update || { echo "apt-get update failed with $?"; exit 4; }
apt-get -y install git
# 2- Download ScoDoc8
printf "\nDownloading files...\n"
cd "$SCODOC_DIR"/.. || { echo "Fatal error: can't cd to $SCODOC_DIR"; exit 2; }
mv ScoDoc "$scodoc7"
git clone https://scodoc.org/git/viennet/ScoDoc.git || { echo "Fatal error: can't clone git repository"; exit 5; }
cd ScoDoc || { echo "Fatal error: can't cd to $SCODOC_DIR"; exit 6; }
git checkout ScoDoc8 || { echo "Fatal error: can't checkout ScoDoc8 branch"; exit 7; }
# 3- Migrate user's configuration if needed
if [ "$local_config_diff" -ne 0 ]
then
src="$scodoc7"/config/scodoc_config.py
dst="${SCODOC_VAR_DIR}/config/scodoc_local.py"
if [ -e "$dst" ]
then
echo "Warning: moving ${dst} to ${dst}.old"
printf "=> vérifiez votre configuration locale avant utilisation.\n\n"
mv "$dst" "$dst".old
fi
echo
echo "Copying local configuration file $src"
echo "to $dst"
cp "$src" "$dst"
fi
printf "\nDone.\nPlease start scodoc to use ScoDoc8: systemctl start scodoc\n"