Commit 0cb672a2 authored by Miguel Angel Reina Ortega's avatar Miguel Angel Reina Ortega
Browse files

Initiate the TS 104 196 repo

parents
Loading
Loading
Loading
Loading
Loading

media/ETSI-TS-logo.png

0 → 100644
+191 KiB
Loading image diff...
+164 −0
Original line number Original line Diff line number Diff line
# CI/CD:
#
# GENERATION triggered by:
#  - merge request
#

workflow:
  rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event" # Creation of Merge Request (generation of CR)
    - if: $CI_PIPELINE_SOURCE == "trigger" # Upgrade of the index.html page
    - if: $CI_COMMIT_TAG # Creation of tag (publish spec)
    - if: $CI_PIPELINE_SOURCE == "web" # Removal of a specific entry
    - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
      when: never # Pipeline to be run manually as defined in the contribution procedure as it is not known when the CR is ready

variables:

stages:
  - checking
  - generation
  - publication
  - web

Checking conflicts:
  stage: checking
  rules:
    - if: $CI_MERGE_REQUEST_TITLE !~ /v.*_baseline$/ && $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_MILESTONE
      when: always
      variables:
        MERGE_REQUEST_MILESTONE: $CI_MERGE_REQUEST_MILESTONE
    - if: $CI_MERGE_REQUEST_TITLE !~ /v.*_baseline$/ && $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_MILESTONE == null
      when: always
      variables:
        MERGE_REQUEST_MILESTONE: "all"
  allow_failure: true
  image: forge.etsi.org:5050/cti/md-specs-dev/tools/generatecr:master
  tags:
    - docker
  before_script:
    # Installation of required software
    - apt-get update -qq && apt-get -qq install -y git curl jq > /dev/null
    - |
     curl "https://git.onem2m.org/api/v4/projects/42/repository/files/checking_conflicts%2Esh/raw?ref=master" >> checking_conflicts.sh
    - chmod +x checking_conflicts.sh
    - git clone "https://oauth2:${SPECIFICATIONS_PIPELINE_TOKEN}@$CI_SERVER_HOST/rep/$CI_PROJECT_PATH.git" ${CI_PROJECT_NAME}
  script:
    - echo 'Checking conflicts'
    - /generateCR/checking_conflicts.sh ${CI_API_V4_URL} ${CI_MERGE_REQUEST_PROJECT_ID} ${MERGE_REQUEST_MILESTONE} ${CI_MERGE_REQUEST_TARGET_BRANCH_NAME} ${CI_MERGE_REQUEST_IID} ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME} ${CI_PROJECT_NAME} "$GITLAB_USER_NAME" $GITLAB_USER_EMAIL $SPECIFICATIONS_PIPELINE_TOKEN
  artifacts:
    when: on_failure
    paths:
      - conflicting_merge_requests.txt
    expose_as: 'Checking conflicts log'

Word CR:
  stage: generation
  rules:
    - if: $CI_MERGE_REQUEST_TITLE !~ /v.*_baseline$/ && $CI_PIPELINE_SOURCE == "merge_request_event"
      when: on_success
  dependencies: []
  when: on_success
  before_script:
    - |
     curl "${CI_API_V4_URL}/projects/$PIPELINE_SCRIPTS_PROJECT_ID/repository/files/specifications%2Fgenerate_changemarks%2Esh/raw?ref=main" >> generate_changemarks.sh
    - chmod +x generate_changemarks.sh
    - |
     curl "${CI_API_V4_URL}/projects/$PIPELINE_SCRIPTS_PROJECT_ID/repository/files/specifications%2Fmec_delimiter_start%2Edocx/raw?ref=main" >> mec_delimiter_start.docx
    #- |
    # curl "${CI_API_V4_URL}/projects/$PIPELINE_SCRIPTS_PROJECT_ID/repository/files/specifications%2Fmec_delimiter_end%2Edocx/raw?ref=specifications" >> mec_delimiter_end.docx
    - |
     curl "${CI_API_V4_URL}/projects/$PIPELINE_SCRIPTS_PROJECT_ID/repository/files/specifications%2Fmec_coversheet_template%2Edocx/raw?ref=main" >> mec_coversheet_template.docx
    #- |
    # curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/specifications%2FSpec-template%2Edocx/raw?ref=specifications" >> mec_spec_template.docx
  script:
    - echo 'CR contribution'
    - mkdir docs
    - ./generate_changemarks.sh ${CI_PROJECT_URL} ${CI_MERGE_REQUEST_PROJECT_ID} ${CI_MERGE_REQUEST_IID} mec_delimiter_start.docx mec_coversheet_template.docx $SPECIFICATIONS_PIPELINE_TOKEN
  artifacts:
    paths:
      - docs/
    expose_as: 'Word CR'
    
Baseline contribution:
  stage: generation
  rules:
    - if: $CI_MERGE_REQUEST_TITLE =~ /v.*_baseline$/ && $CI_PIPELINE_SOURCE == "merge_request_event"
      when: on_success
  dependencies: []
  when: on_success
  before_script:
    - |
     curl "${CI_API_V4_URL}/projects/$PIPELINE_SCRIPTS_PROJECT_ID/repository/files/publish_spec%2Esh/raw?ref=main" >> publish_spec.sh
    - chmod +x publish_spec.sh
    - |
     curl "${CI_API_V4_URL}/projects/$PIPELINE_SCRIPTS_PROJECT_ID/repository/files/specifications%2FSpec-template%2Edocx/raw?ref=main" >> mec_spec_template.docx
    - |
     curl "${CI_API_V4_URL}/projects/$PIPELINE_SCRIPTS_PROJECT_ID/repository/files/specifications%2FETSI_GR_cover_skeleton%2Edocx/raw?ref=main" >> ETSI_GR_cover_skeleton.docx
    - |
     export SPEC_NAME=$(ls | grep T*.md | cut -d'.' -f1)
     export BASELINE_VERSION=$(echo ${CI_MERGE_REQUEST_TITLE} | grep -o v.*_baseline | cut -d'_' -f1-3 )
  script:
    - echo 'Generating baseline'
    - ./publish_spec.sh ${CI_PROJECT_URL} ${BASELINE_VERSION} mec_spec_template.docx $SPEC_NAME ETSI_GR_cover_skeleton.docx "onlyDocx"
  artifacts:
    name: "Baseline"
    paths:
      - baseline/
    expose_as: 'Baseline'
      
# Do not protect branch until creation and update of merge request can be differenciated for triggering pipeline, otherwise branch is protected_branches
# with a single update of a merge request (which is not desired). This should be run only for a creation of merge request
# Protect branch:
#   stage: generation
#   when: on_success
#   needs: ["Word CR"]
#   only:
#     - merge_requests
#   script:
#     - |
#      curl --request POST --header "PRIVATE-TOKEN: ${ACCESS_TOKEN}" "${CI_API_V4_URL}/projects/${CI_MERGE_REQUEST_PROJECT_ID}/protected_branches?name=${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME}"
#

Publish spec:
  stage: publication
  only:
    - tags
  #before_script:
  #  - |
  #   curl "${CI_API_V4_URL}/projects/$PIPELINE_SCRIPTS_PROJECT_ID/repository/files/specifications%2Fpublish_spec%2Esh/raw?ref=main" > publish_spec.sh
  #  - chmod +x publish_spec.sh
  #  - |
  #   curl "${CI_API_V4_URL}/projects/$PIPELINE_SCRIPTS_PROJECT_ID/repository/files/specifications%2Fgenerate_releasenotes%2Esh/raw?ref=main" > generate_releasenotes.sh
  #  - chmod +x generate_releasenotes.sh
  #  - |
  #   curl "${CI_API_V4_URL}/projects/$PIPELINE_SCRIPTS_PROJECT_ID/repository/files/specifications%2Fmec_release_notes_template%2Edocx/raw?ref=main" > release_notes_template.docx
  #  - |
  #   curl "${CI_API_V4_URL}/projects/$PIPELINE_SCRIPTS_PROJECT_ID/repository/files/specifications%2FSpec-template%2Edocx/raw?ref=main" > mec_spec_template.docx
  #  - |
  #   export SPEC_NAME=$(ls | grep -E "(GS|GR).*\.md" | cut -d'.' -f1)
  #  - |
  #    echo 'Checking if GS or GR specification'
  #    if [[ $SPEC_NAME =~ ^GS.* ]]
  #    then
  #      curl "${CI_API_V4_URL}/projects/$PIPELINE_SCRIPTS_PROJECT_ID/repository/files/specifications%2FETSI_GS_cover_skeleton%2Edocx/raw?ref=main" > mec_cover_skeleton.docx
  #    elif [[ $SPEC_NAME =~ ^GR.* ]]
  #    then
  #      curl "${CI_API_V4_URL}/projects/$PIPELINE_SCRIPTS_PROJECT_ID/repository/files/specifications%2FETSI_GR_cover_skeleton%2Edocx/raw?ref=main" > mec_cover_skeleton.docx
  #    else
  #      echo 'Specification is not a GS or GR specification'
  #      exit 1
  #    fi

  script:
    - echo 'Publishing spec'
    - ./pipeline-scripts/publish_spec.sh ${CI_COMMIT_TAG} pipeline-scripts/ts_spec_template.docx ${CI_PROJECT_NAME} pipeline-scripts/ts_cover_skeleton.docx
    - ./pipeline-scripts/generate_releasenotes.sh ${CI_PROJECT_URL} ${CI_PROJECT_ID} ${CI_COMMIT_TAG} pipeline-scripts/release_notes_template.docx "$GITLAB_USER_NAME"
    
  artifacts:
    name: "${CI_PROJECT_NAME}_${CI_COMMIT_TAG}"
    paths:
      - "baseline/*_${CI_COMMIT_TAG}.docx"
      #- "baseline/*_${CI_COMMIT_TAG}.pdf"
      #- "baseline/*_${CI_COMMIT_TAG}.epub"
+89 −0
Original line number Original line Diff line number Diff line
#
#	generate_changemarks.sh
#
#	Script to generate CR Word documents from merge requests. Outputs:
#       - 1 - Word CR document containing the git diff 
#       - 2 - Word CR document containing tracked changes (informative) - Deprecated 
#	(c) 2024 by Miguel Angel Reina Ortega
#	License: BSD 3-Clause License. See the LICENSE file for further details.
#
#!/bin/bash

FORGELIB_DOCKER_IMAGE=forge.3gpp.org:5050/tools/3gpp-scripts/forgelib:v2.28.0
GENERATE_CHANGEMARKS_DOCKER_IMAGE=forge.etsi.org:5050/cti/md-specs-dev/tools/generatecr:master

#Parameters

#${CI_PROJECT_URL} -> 1
echo "CI_PROJECT_URL:" $1
#${CI_MERGE_REQUEST_PROJECT_ID} -> 2
echo "CI_MERGE_REQUEST_PROJECT_ID:" $2
#${CI_MERGE_REQUEST_IID} -> 3
echo "CI_MERGE_REQUEST_IID:" $3
#${mec_start_delimiter} -> 4
echo "mec_start_delimiter:" $4
#${mec_coversheet_template} -> 5
echo "mec_coversheet_template:" $5
#"$MIKE_ACCESS_TOKEN" -> 6
echo "MIKE_ACCESS_TOKEN:" $6

echo "\n------ Checking for docker image --------"
echo "$GENERATE_BASELINE_DOCKER_IMAGE" | cut -d "/" -f 1 | docker logout 
docker pull "$GENERATE_CHANGEMARKS_DOCKER_IMAGE"
echo "$FORGELIB_DOCKER_IMAGE" | cut -d "/" -f 1 | docker logout 
docker pull "$FORGELIB_DOCKER_IMAGE"


echo "------ Removing previous outputs --------"
rm **/*.docx
rm out/*.md

echo "------ Parsing repo URL --------"

HOST_URL=$(echo $1 | cut -d'/' -f 1-4)
PROJECT_NAME=$(echo $1 | grep -o '[^/]*$' | cut -d'.' -f 1)
echo "HOST URL:" $HOST_URL
echo "PROJECT NAME:" $PROJECT_NAME
PROJECT_ID=$2
echo "PROJECT ID:" $PROJECT_ID
MERGE_REQUEST_IID=$3
echo "MERGE IID:" $MERGE_REQUEST_IID
MEC_DELIMITER_START=$4
echo "MEC DELIMITER START:" $MEC_DELIMITER_START
MEC_COVERSHEET_TEMPLATE=$5
echo "MEC COVERSHEET TEMPLATE:" $MEC_COVERSHEET_TEMPLATE
TOKEN=$6
echo "TOKEN:" $TOKEN

echo "\n------ Generating change marks MD --------"
#docker container run --rm -v $(pwd):/tmp/ "$DOCKER_IMAGE" forgelib-changedocs -vv --combine --diffs --preprocessor onem2m --outPath=/tmp/docs --startdelimiter "/tmp/$4" --enddelimiter "/tmp/$5" --coversheet "/tmp/$6" "$HOST_URL" "$2" "$PROJECT_NAME" "$3"
docker container run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) "$GENERATE_CHANGEMARKS_DOCKER_IMAGE" changemarks -o "/tmp/out" "$HOST_URL" "${PROJECT_ID}" "${MERGE_REQUEST_IID}"

#echo "\n------ Generating changemarks docx --------"
#for i in out/*.md ;  do
#    DOCUMENT_NAME=$(echo $i | cut -d'/' -f 2)
#	echo "\n------ Preparaing spec --------" 
#	docker run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) "$GENERATE_CHANGEMARKS_DOCKER_IMAGE" pandocFilter -o "/tmp/out" "/tmp/$i"
#	echo "\n------ Publishing spec --------" 
#	docker run --rm -v $(pwd):/data -u $(id -u):$(id -g) "$DOCKER_IMAGE" "/data/$i" -f markdown -t docx --reference-doc "/data/${7}" -o "/data/out/${DOCUMENT_NAME}.docx"
#   #docker run --rm -v $(pwd):/data -u $(id -u):$(id -g) "$DOCKER_IMAGE" "/data/$i" -f markdown -t html -o "/data/out/${DOCUMENT_NAME}.html"
#    #docker run --rm -v $(pwd):/data -u $(id -u):$(id -g) "$DOCKER_IMAGE" "/data/out/${DOCUMENT_NAME}.html" -f html -t docx --reference-doc "Spec-template.docx" -o "/data/out/${DOCUMENT_NAME}.docx"
#done

#echo "\n------ Combining docx --------"
##docker container run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) "$FORGELIB_DOCKER_IMAGE" forgelib-changedocs -vv -sf "/tmp/out/" --preprocessor onem2m --outPath=/tmp/docs --startdelimiter "/tmp/$4" --enddelimiter "/tmp/$5" --coversheet "/tmp/$6" "$HOST_URL" "$2" "$3"
#docker container run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) -w "/tmp" "$FORGELIB_DOCKER_IMAGE" forgelib-changedocs -vv -sf "out/" --preprocessor onem2m --token ${8} --outPath=docs/ --startdelimiter "$4" --enddelimiter "$5" --coversheet "$6" "$HOST_URL" "$2" "$3"

#echo "\n------ Converting to tracked changes docx --------"
#for i in docs/*.docx ; do
#    DOCUMENT_NAME=$(echo $i | cut -d'/' -f 2)
#	docker container run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) "$GENERATE_CHANGEMARKS_DOCKER_IMAGE" addTrackedChanges -o "/tmp/docs/$DOCUMENT_NAME" "/tmp/$i" "$HOST_URL" "$2" "$3"
#done
#for filename in docs/*.docx; do
#    mv $filename ${filename%.*}_revisionMarks\(informative\).docx; done;
#    #mv "$filename" "prefix_${filename}"; done;

echo "\n------ Generating change marks --------"
docker container run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) -w "/tmp" "$FORGELIB_DOCKER_IMAGE" forgelib-changedocs -vv --combine --diffs --linenumbers --extension "png" --extension "jpg" --extension "svg" --extension "md" --preprocessor mec --token ${TOKEN} --outPath=docs/ --startdelimiter "${MEC_DELIMITER_START}" --coversheet "${MEC_COVERSHEET_TEMPLATE}" "$HOST_URL" "${PROJECT_ID}" "${MERGE_REQUEST_IID}"

exit 0
+41 −0
Original line number Original line Diff line number Diff line
#
#	generate_changemarks.sh
#
#	Script to generate CR Word documents from merge requests. Outputs:
#       - 1 - Word CR document containing the git diff 
#       - 2 - Word CR document containing tracked changes (informative) - Deprecated 
#	(c) 2024 by Miguel Angel Reina Ortega
#	License: BSD 3-Clause License. See the LICENSE file for further details.
#
#!/bin/bash

FORGELIB_DOCKER_IMAGE=forge.3gpp.org:5050/tools/3gpp-scripts/forgelib:v2.28.0

echo "\n------ Checking for docker image --------"
docker logout $(echo "$FORGELIB_DOCKER_IMAGE" | cut -d "/" -f 1 ) 
docker pull "$FORGELIB_DOCKER_IMAGE"


echo "------ Removing previous outputs --------"

echo "------ Parsing repo URL --------"

HOST_URL=$(echo $1 | cut -d'/' -f 1-4)
PROJECT_NAME=$(echo $1 | grep -o '[^/]*$' | cut -d'.' -f 1)
echo "HOST URL:" $HOST_URL
echo "PROJECT NAME:" $PROJECT_NAME
PROJECT_ID=$2
echo "PROJECT ID:" $PROJECT_ID
TAG=$3
echo "TAG:" $TAG
RELEASE_NOTES_TEMPLATE=$4
echo "RELEASE NOTES TEMPLATE:" $RELEASE_NOTES_TEMPLATE
GITLAB_USER_NAME=$5
echo "GITLAB USER NAME:" $GITLAB_USER_NAME
TOKEN=$6
echo "TOKEN:" $TOKEN

echo "\n------ Generating release notes --------"
docker container run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) -w "/tmp" "$FORGELIB_DOCKER_IMAGE" forgelib-releaseNotes -vv --combine --filename --diffs --linenumbers --extension "png" --extension "jpg" --extension "svg" --extension "md" --outPath=baseline/ --token "${TOKEN}" --coversheet ${RELEASE_NOTES_TEMPLATE} "$HOST_URL" "${PROJECT_ID}" "${TAG}" "$GITLAB_USER_NAME"

exit 0
+98 −0
Original line number Original line Diff line number Diff line
#
#	publish_specs.sh
#
#	Script to generate documents from markdown files with Pandoc. Outputs:
#		- .docx
#		- .pdf
#		- .epub 
#
#	(c) 2024 by Miguel Angel Reina Ortega
#	License: BSD 3-Clause License. See the LICENSE file for further details.
#
#!/bin/bash

PANDOC_DOCKER_IMAGE=forge.etsi.org:5050/cti/md-specs-dev/tools/generatebaseline/pandoc:master
GENERATE_BASELINE_DOCKER_IMAGE=forge.etsi.org:5050/cti/md-specs-dev/tools/generatebaseline:master
MARKDOWN_TOOLS_DOCKER_IMAGE=forge.etsi.org:5050/cti/md-specs-dev/tools/markdowntools:master
FORGELIB_DOCKER_IMAGE=forge.3gpp.org:5050/tools/3gpp-scripts/forgelib:v2.28.0

echo "\n------ Checking for docker image --------"
docker logout $(echo "$PANDOC_DOCKER_IMAGE" | cut -d "/" -f 1) 
docker pull "$PANDOC_DOCKER_IMAGE"
docker logout $(echo "$GENERATE_BASELINE_DOCKER_IMAGE" | cut -d "/" -f 1)
docker pull "$GENERATE_BASELINE_DOCKER_IMAGE"
docker logout $(echo "$MARKDOWN_TOOLS_DOCKER_IMAGE" | cut -d "/" -f 1)
docker pull "$MARKDOWN_TOOLS_DOCKER_IMAGE"
docker logout $(echo "$FORGELIB_DOCKER_IMAGE" | cut -d "/" -f 1)
docker pull "$FORGELIB_DOCKER_IMAGE"

echo "------ Removing previous outputs --------"
rm -f baseline/*.docx 2>/dev/null || true

echo "------ Parsing repo URL --------"

TAG_NAME=$1
echo "TAG NAME:" $TAG_NAME
SPEC_TEMPLATE=$2
echo "SPEC TEMPLATE:" $SPEC_TEMPLATE 
SPEC_NAME=$3
echo "SPEC NAME:" $SPEC_NAME
ETSI_COVER_TEMPLATE=$4
echo "SPEC COVER TEMPLATE:" $ETSI_COVER_TEMPLATE
CONTRIBUTION_TYPE=$5
echo "CONTRIBUTION TYPE:" $CONTRIBUTION_TYPE

echo "------ Getting .md file(s) ------"
# If there are no .md files, then simply exit
ls | grep -q 'md'
specs=$?
if [ ! $specs ] ; then 
    echo "-- No Markdown files."
    exit 0
fi

for i in $(find -name "*.svg") ; do
  echo "\n------ Converting SVG to PNG for pandoc --------"
	png="${i%.svg}.png"
    if [ -f "$png" ]; then
      echo "Skipping $i — PNG already exists at $png"
      continue
    fi
done

for i in *.md ;  do
    if [ $i != 'README.md' ]; then
    	if [[ $i =~ (GS|GR|TS|TR|EN|EG).*\.md ]] ; then
        	echo "\n------ Processing MD file to combine all clauses (::include) -------"
            docker run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) -w "/tmp" "$MARKDOWN_TOOLS_DOCKER_IMAGE" processMDSpec -fmo "$i" -fmf frontmatter.md
            docker run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) -w "/tmp" "$MARKDOWN_TOOLS_DOCKER_IMAGE" processMDSpec "$i" > combined.md
            cat combined.md > $i
			echo "\n------ Adding TOC to spec --------"
	      	#docker run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) "$GENERATE_BASELINE_DOCKER_IMAGE" generateTOC --add-content "/tmp/$i"
	  		echo "\n------ Preparing spec --------"
	    	docker run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) "$GENERATE_BASELINE_DOCKER_IMAGE" pandocFilter -ts -fp -o "/tmp/" "/tmp/$i"
			echo "\n------ Publishing spec --------"
			mkdir baseline
	    	# Word output
	    	docker run --rm -v $(pwd):/data -u $(id -u):$(id -g) -w "/data" "$PANDOC_DOCKER_IMAGE" "/data/$i" --toc --metadata toc-title="Contents" -F mermaid-filter -f markdown+escaped_line_breaks -t docx --reference-doc "/data/${SPEC_TEMPLATE}" -o "baseline/${SPEC_NAME}_${TAG_NAME}.docx"
	    	#echo 'docker run --rm -v $(pwd):/data -u $(id -u):$(id -g) "$DOCKER_IMAGE" "/data/$i" -F mermaid-filter -f markdown+escaped_line_breaks -t pdf -o "${4}_${2}.pdf"'
	    	if [ -f "frontmatter.md" ] && [ "$(cat frontmatter.md | tr -d ' \n\t')" != "{}" ]; then
	        	docker container run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) -w "/tmp" "$FORGELIB_DOCKER_IMAGE" forgelib-baseline ${ETSI_COVER_TEMPLATE} frontmatter.md "baseline/${SPEC_NAME}_${TAG_NAME}.docx"
	    	fi
			#if [ "$6" != "onlyDocx" ]; then
				#Do not convert to PDF or EPUB until a solution is found to include the spec cover pages
				# PDF Output
				#docker run --rm -v $(pwd):/data -u $(id -u):$(id -g) -w "/data" "$PANDOC_DOCKER_IMAGE" pandoc "/data/$i" -F mermaid-filter -f markdown+escaped_line_breaks -t pdf -o "baseline/${4}_${2}.pdf"
				# EPUB Output
				#docker run --rm -v $(pwd):/data -u $(id -u):$(id -g) -w "/data" "$PANDOC_DOCKER_IMAGE" pandoc "/data/$i" -f markdown+escaped_line_breaks -t epub3 -o "baseline/${4}_${2}.epub" --metadata title="${PROJECT_NAME}_${2}" --metadata creator="oneM2M Partnership Project" --metadata rights="Copyright 2024 oneM2M Partners
	#hip Project"
			#fi
			echo "\n------ Postprocessing spec --------"
			docker run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) -w "/tmp" "$GENERATE_BASELINE_DOCKER_IMAGE" update_toc "baseline/${SPEC_NAME}_${TAG_NAME}.docx" "baseline/${SPEC_NAME}_${TAG_NAME}.docx"
			docker run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) -w "/tmp" "$GENERATE_BASELINE_DOCKER_IMAGE" update_format_styles "baseline/${SPEC_NAME}_${TAG_NAME}.docx" "baseline/${SPEC_NAME}_${TAG_NAME}.docx"
		fi
	fi
done


exit 0