From 0a03d844c6f2dbaf7ad160caeab0f63e9aad583e Mon Sep 17 00:00:00 2001
From: Miguel Angel Reina Ortega <miguelangel.reinaortega@etsi.org>
Date: Thu, 8 Feb 2024 15:17:11 +0100
Subject: [PATCH] Adding the generation of TOC to the pipeline

---
 .gitlab-ci.yml                                      | 1 +
 {generateTOC => generateChangemarks}/README.md      | 0
 {generateTOC => generateChangemarks}/generateTOC.py | 9 ++++++---
 generateChangemarks/setup.py                        | 5 +++--
 publish_spec.sh                                     | 2 ++
 5 files changed, 12 insertions(+), 5 deletions(-)
 rename {generateTOC => generateChangemarks}/README.md (100%)
 rename {generateTOC => generateChangemarks}/generateTOC.py (98%)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 79e90c2..8e83d4a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -27,6 +27,7 @@ Build pythonForPandocFilter docker image:
         - generateChangemarks/pandocFilter.py
         - generateChangemarks/changemarks.py
         - generateChangemarks/addTrackedChanges.py
+        - generateChangemarks/generateTOC.py
         
 Upgrade index for pages:
   stage: upgrade
diff --git a/generateTOC/README.md b/generateChangemarks/README.md
similarity index 100%
rename from generateTOC/README.md
rename to generateChangemarks/README.md
diff --git a/generateTOC/generateTOC.py b/generateChangemarks/generateTOC.py
similarity index 98%
rename from generateTOC/generateTOC.py
rename to generateChangemarks/generateTOC.py
index ad08b43..deada95 100644
--- a/generateTOC/generateTOC.py
+++ b/generateChangemarks/generateTOC.py
@@ -9,7 +9,7 @@
 
 from __future__ import annotations
 from typing import Tuple
-import argparse, os, re
+import argparse, os, re, sys
 from rich import print
 
 
@@ -82,7 +82,8 @@ def processDocument(args:argparse.Namespace) -> None:
 	for h in headers:
 		toc += '&nbsp;' * (h[1] * args.indent) + f'[{h[0]}](#{prepareTOClink(h[0])})  \n'
 	toc = re.sub('<[^<]+?>', '', toc)
-	
+	toc += '\n'
+
 	# Write the TOC to the console
 	print(toc)
 
@@ -117,7 +118,7 @@ def processDocument(args:argparse.Namespace) -> None:
 			
 
 
-if __name__ == '__main__':
+def main(args=None):
 
 	def nonNegativeInt(value:str) -> int:
 		"""Check if a value is a non-negative integer.
@@ -150,3 +151,5 @@ if __name__ == '__main__':
 
 	processDocument(args)
 
+if __name__ == '__main__':
+	sys.exit(main())
diff --git a/generateChangemarks/setup.py b/generateChangemarks/setup.py
index aa23d04..7353e00 100644
--- a/generateChangemarks/setup.py
+++ b/generateChangemarks/setup.py
@@ -13,8 +13,9 @@ setup(
 	],
     entry_points= {
             'console_scripts' : ['pandocFilter=pandocFilter:main',
-								 'changemarks=changemarks:main',
-								 'addTrackedChanges=addTrackedChanges:main',
+								'changemarks=changemarks:main',
+								'addTrackedChanges=addTrackedChanges:main',
+								'generateTOC=generateTOC:main',
 			]
             }
 
diff --git a/publish_spec.sh b/publish_spec.sh
index 168427b..624f442 100755
--- a/publish_spec.sh
+++ b/publish_spec.sh
@@ -28,6 +28,8 @@ if [ ! $specs ] ; then
 fi
 
 for i in *.md ;  do
+    echo "\n------ Adding TOC to spec --------"
+	docker run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) "$TOOLS_DOCKER_IMAGE" generateTOC --add-content "/tmp/$i"
 	echo "\n------ Preparaing spec --------" 
 	docker run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) "$TOOLS_DOCKER_IMAGE" pandocFilter -o "/tmp/" "/tmp/$i"
 	echo "\n------ Publishing spec --------" 
-- 
GitLab