From 8c4dfcc87af744a7ba811de6f2862907638efb3e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Grand?= <francois.grand@inrae.fr>
Date: Mon, 5 Jun 2023 08:52:29 +0200
Subject: [PATCH] fix(doc): french PDF erased during documentation generation

---
 package.json              |  4 ++--
 scripts/check-pdf-docs.sh | 21 +++++++++++++++++++++
 scripts/mkdocs2pdf.py     |  6 +++++-
 3 files changed, 28 insertions(+), 3 deletions(-)
 create mode 100755 scripts/check-pdf-docs.sh

diff --git a/package.json b/package.json
index b1f25714c..b978f2097 100644
--- a/package.json
+++ b/package.json
@@ -15,8 +15,8 @@
     "e2equick": "node scripts/check-translations.js && ./node_modules/.bin/wdio run ./wdio.conf.ts",
     "monkeytest": "npm run ng -- e2e --dev-server-target= --suite=monkeyTest --webdriver-update=false",
     "mkdocs": "bash scripts/prepare_mkdocs.sh; cd build; python3 -m mkdocs build -f mkdocs-fr.yml && python3 -m mkdocs build -f mkdocs-en.yml && cd .. && node scripts/mkdocs-postprocess.js",
-    "mkdocs2pdf": "node scripts/extract-nghyd-version.js build/cassiopee_version.tex && python3 scripts/mkdocs2pdf.py && node scripts/mkdocs2pdf-postprocess.js",
-    "clean": "rm -rf build dist release src/date_revision.ts src/assets/docs",
+    "mkdocs2pdf": "node scripts/extract-nghyd-version.js build/cassiopee_version.tex && python3 scripts/mkdocs2pdf.py && node scripts/mkdocs2pdf-postprocess.js && bash scripts/check-pdf-docs.sh",
+    "clean": "rm -rf build dist release src/date_revision.ts src/assets/docs docs/pdf_build",
     "preprocess": "mkdir -p build; node scripts/preprocessors.js; npm run service-worker-version; bash scripts/fix-chartjs-plugin-zoom-2.0.0.sh",
     "start": "npm run preprocess && npm run mkdocs && npm run ng serve -- --host 127.0.0.1 --poll 5000",
     "build-no-pdf": "npm run preprocess && npm run mkdocs && npm run ng build -- --configuration production",
diff --git a/scripts/check-pdf-docs.sh b/scripts/check-pdf-docs.sh
new file mode 100755
index 000000000..c5b3da2ea
--- /dev/null
+++ b/scripts/check-pdf-docs.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+# check that PDF doc files are generated
+
+# error on unset variables
+set -o nounset
+
+# exit on error
+set -o errexit
+
+function check_file()
+{
+  if [[ ! -f $1 ]]; then
+    echo "$1 : missing documentation file" >&2
+    exit 1
+  fi
+}
+
+check_file dist/assets/docs/pdf/cassiopee_notice_illustree_fr.pdf
+check_file dist/assets/docs/pdf/cassiopee_doc_fr.pdf
+check_file dist/assets/docs/pdf/cassiopee_doc_en.pdf
diff --git a/scripts/mkdocs2pdf.py b/scripts/mkdocs2pdf.py
index 37deb6a8f..61e53884b 100644
--- a/scripts/mkdocs2pdf.py
+++ b/scripts/mkdocs2pdf.py
@@ -56,6 +56,10 @@ def createEmptyDir(path):
         shutil.rmtree(path)
     os.makedirs(path)
 
+def createDir(path):
+    if not os.path.exists(path):
+        os.makedirs(path)
+
 # Reads an MkDocs configuration file
 def readConfig(sYAML):
     f = open(sYAML, 'r')
@@ -210,7 +214,7 @@ def buildDocForLang(lang):
     # Prepare temporary build directory
     createEmptyDir(pdfBuildDir)
     # Prepare output directory
-    createEmptyDir(outputDir)
+    createDir(outputDir)
 
     # Read config
     yamlPath = 'mkdocs/mkdocs-' + lang + '.yml'
-- 
GitLab