From d2947b23d34fde9bc277b3c49590590012c12755 Mon Sep 17 00:00:00 2001
From: Emmanuel Viennet <emmanuel.viennet@gmail.com>
Date: Fri, 27 Aug 2021 10:41:22 +0200
Subject: [PATCH] =?UTF-8?q?am=C3=A9liore=20script=20postinst=20(FLASK=5FAP?=
 =?UTF-8?q?P)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 README.md             | 17 ++++++++++++++---
 tools/config.sh       |  2 ++
 tools/debian/postinst | 12 ++++++++++--
 tools/utils.sh        |  7 +++++++
 4 files changed, 33 insertions(+), 5 deletions(-)

diff --git a/README.md b/README.md
index cce52bd8e..45743c414 100644
--- a/README.md
+++ b/README.md
@@ -73,14 +73,25 @@ Installer ScoDoc 9 normalement ([voir la doc](https://scodoc.org/GuideInstallDeb
 Puis remplacer `/opt/scodoc` par un clone du git. 
 
     sudo su
-    mv /opt/scodoc /opt/scodoc-distrib # ou ce que vous voulez
+    mv /opt/scodoc /opt/off-scodoc # ou ce que vous voulez
     apt-get install git # si besoin
     cd /opt
     git clone https://scodoc.org/git/viennet/ScoDoc.git
     # (ou bien utiliser votre clone gitea si vous l'avez déjà créé !)
     mv ScoDoc scodoc # important !
-    cd /opt/scodoc
-    # et voilà.
+    
+Il faut ensuite installer l'environnement et le fichier de configuration:
+
+    # Le plus simple est de piquer le virtualenv configuré par l'installeur:
+    mv /opt/off-scodoc/venv /opt/scodoc
+
+Et la config:
+
+    ln -s /opt/scodoc-data/.env /opt/scodoc
+
+Cette dernière commande utilise le `.env` crée lors de l'install, ce qui
+n'est pas toujours le plus judicieux: vous pouvez modifier son contenu, par
+exemple pour travailler en mode "développement" avec `FLASK_ENV=development`.
 
 ### Tests unitaires
 
diff --git a/tools/config.sh b/tools/config.sh
index 39479dcd5..9d7260350 100644
--- a/tools/config.sh
+++ b/tools/config.sh
@@ -22,6 +22,8 @@ export SCODOC_VAR_DIR=/opt/scodoc-data
 export SCODOC_VERSION_DIR="${SCODOC_VAR_DIR}/config/version"
 export SCODOC_LOGOS_DIR="${SCODOC_VAR_DIR}/config/logos"
 
+export FLASK_APP=scodoc.py
+
 # Unix user running ScoDoc server:
 export SCODOC_USER=scodoc
 export SCODOC_GROUP=root
diff --git a/tools/debian/postinst b/tools/debian/postinst
index e07b06e84..53db633c5 100644
--- a/tools/debian/postinst
+++ b/tools/debian/postinst
@@ -80,15 +80,23 @@ fi
 # --- NGINX
 if [ ! -L /etc/nginx/sites-enabled/scodoc9.nginx ]
 then
+    echo "Enabling scodoc9 in nginx"
     ln -s /etc/nginx/sites-available/scodoc9.nginx /etc/nginx/sites-enabled/
 fi
 /bin/rm -f /etc/nginx/sites-enabled/default
 
-# --- POSTGRESQL
+# ------------  POSTGRESQL
 # --- Ensure postgres user "scodoc" ($POSTGRES_USER) exists
 init_postgres_user
 
-# --- MISES A JOUR
+
+# ------------ CONFIG SERVICE SCODOC
+echo 
+echo "Installation du service systemd scodoc9..."
+cp "$SCODOC_DIR"/tools/etc/scodoc9.service /etc/systemd/system/
+systemctl daemon-reload
+
+# ------------ MISES A JOUR
 cp "$SCODOC_DIR"/tools/etc/scodoc-updater.service /etc/systemd/system
 cp "$SCODOC_DIR"/tools/etc/scodoc-updater.timer /etc/systemd/system
 systemctl enable scodoc-updater.timer
diff --git a/tools/utils.sh b/tools/utils.sh
index 973ee31d0..e751501a4 100644
--- a/tools/utils.sh
+++ b/tools/utils.sh
@@ -68,6 +68,12 @@ check_create_scodoc_user() {
     else
         echo "Unix user ${SCODOC_USER} exists"
     fi
+    # Check / set FLASK_APP
+    scodoc_home=$(getent passwd "${SCODOC_USER}" | cut -d: -f 6)
+    if [ -e "$scodoc_home/.profile" ] && [ $(grep -c FLASK_APP "$scodoc_home/.profile") == 0 ]
+    then
+      echo "export FLASK_APP=scodoc.py" >> "$scodoc_home/.profile"
+    fi
 }
 
 # --- Give all ScoDoc files (/opt/scodoc) to user "scodoc":
@@ -79,6 +85,7 @@ change_scodoc_file_ownership() {
 # Création du répertoire local (scodoc-data) et vérification du propriétaire
 set_scodoc_var_dir() {
   echo "Checking $SCODOC_VAR_DIR..."
+  [ -z ${SCODOC_VAR_DIR+x} ] && die "Error: env var SCODOC_VAR_DIR not set"
   [ -d "$SCODOC_VAR_DIR" ] || mkdir "$SCODOC_VAR_DIR" || die "can't create $SCODOC_VAR_DIR directory"
   for d in archives photos tmp log config certs config/version config/depts config/logos
   do
-- 
GitLab