Commit 2fdc954b authored by Miguel Angel Reina Ortega's avatar Miguel Angel Reina Ortega
Browse files

Support for frontmatter information and revisions

parent bcbf20a8
Loading
Loading
Loading
Loading
+118 KiB

File added.

No diff preview for this file type.

+1.08 KiB (580 KiB)

File changed.

No diff preview for this file type.

+8 −4
Original line number Original line Diff line number Diff line
@@ -93,12 +93,14 @@ Baseline contribution:
    - chmod +x 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%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 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 )
     export BASELINE_VERSION=$(echo ${CI_MERGE_REQUEST_TITLE} | grep -o v.*_baseline | cut -d'_' -f1-3 )
  script:
  script:
    - echo 'Generating baseline'
    - echo 'Generating baseline'
    - ./publish_spec.sh ${CI_PROJECT_URL} ${BASELINE_VERSION} mec_spec_template.docx $SPEC_NAME "onlyDocx"
    - ./publish_spec.sh ${CI_PROJECT_URL} ${BASELINE_VERSION} mec_spec_template.docx $SPEC_NAME ETSI_GR_cover_skeleton.docx "onlyDocx"
  artifacts:
  artifacts:
    name: "Baseline"
    name: "Baseline"
    paths:
    paths:
@@ -128,15 +130,17 @@ Publish spec:
    - chmod +x 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%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 -E "(GS|GR).*\.md" | cut -d'.' -f1)
     export SPEC_NAME=$(ls | grep -E "(GS|GR).*\.md" | cut -d'.' -f1)
  script:
  script:
    - echo 'Publishing spec'
    - echo 'Publishing spec'
    - ./publish_spec.sh ${CI_PROJECT_URL} ${CI_COMMIT_TAG} mec_spec_template.docx $SPEC_NAME
    - ./publish_spec.sh ${CI_PROJECT_URL} ${CI_COMMIT_TAG} mec_spec_template.docx $SPEC_NAME ETSI_GR_cover_skeleton.docx
  artifacts:
  artifacts:
    name: "${CI_PROJECT_NAME}_${CI_COMMIT_TAG}"
    name: "${CI_PROJECT_NAME}_${CI_COMMIT_TAG}"
    paths:
    paths:
      - "baseline/*_${CI_COMMIT_TAG}.docx"
      - "baseline/*_${CI_COMMIT_TAG}.docx"
      - "baseline/*_${CI_COMMIT_TAG}.pdf"
      #- "baseline/*_${CI_COMMIT_TAG}.pdf"
      - "baseline/*_${CI_COMMIT_TAG}.epub"
      #- "baseline/*_${CI_COMMIT_TAG}.epub"
+1 −1
Original line number Original line Diff line number Diff line
@@ -9,7 +9,7 @@
#
#
#!/bin/bash
#!/bin/bash


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


#Parameters
#Parameters
+15 −9
Original line number Original line Diff line number Diff line
@@ -14,15 +14,17 @@
PANDOC_DOCKER_IMAGE=forge.etsi.org:5050/cti/md-specs-dev/tools/generatebaseline/pandoc:master
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
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
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.25.0


echo "\n------ Checking for docker image --------"
echo "\n------ Checking for docker image --------"
echo "$PANDOC_DOCKER_IMAGE" | cut -d "/" -f 1 | docker logout 
docker logout $(echo "$PANDOC_DOCKER_IMAGE" | cut -d "/" -f 1) 
docker pull "$PANDOC_DOCKER_IMAGE"
docker pull "$PANDOC_DOCKER_IMAGE"
echo "$GENERATE_BASELINE_DOCKER_IMAGE" | cut -d "/" -f 1 | docker logout 
docker logout $(echo "$GENERATE_BASELINE_DOCKER_IMAGE" | cut -d "/" -f 1)
docker pull "$GENERATE_BASELINE_DOCKER_IMAGE"
docker pull "$GENERATE_BASELINE_DOCKER_IMAGE"
echo "$MARKDOWN_TOOLS_DOCKER_IMAGE" | cut -d "/" -f 1 | docker logout 
docker logout $(echo "$MARKDOWN_TOOLS_DOCKER_IMAGE" | cut -d "/" -f 1)
docker pull "$MARKDOWN_TOOLS_DOCKER_IMAGE"
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 --------"
echo "------ Removing previous outputs --------"
rm **/*.docx
rm **/*.docx
@@ -35,6 +37,7 @@ echo "HOST URL:" $HOST_URL
echo "PROJECT NAME:" $PROJECT_NAME
echo "PROJECT NAME:" $PROJECT_NAME
echo "TAG NAME:" $2
echo "TAG NAME:" $2
echo "SPEC NAME:" $4
echo "SPEC NAME:" $4
echo "SPEC COVER SKELETON:" $5


echo "------ Getting .md file(s) ------"
echo "------ Getting .md file(s) ------"
# If there are no .md files, then simply exit
# If there are no .md files, then simply exit
@@ -58,6 +61,7 @@ for i in *.md ; do
    if [ $i != 'README.md' ]; then
    if [ $i != 'README.md' ]; then
    	if [[ $i =~ (GS|GR).*\.md ]] ; then
    	if [[ $i =~ (GS|GR).*\.md ]] ; then
        	echo "\n------ Processing MD file to combine all clauses (::include) -------"
        	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" > frontmatter.md
            docker run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) -w "/tmp" "$MARKDOWN_TOOLS_DOCKER_IMAGE" processMDSpec "$i" > combined.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
            cat combined.md > $i
			echo "\n------ Adding TOC to spec --------"
			echo "\n------ Adding TOC to spec --------"
@@ -68,14 +72,16 @@ for i in *.md ; do
	    echo "\n------ Publishing spec --------"
	    echo "\n------ Publishing spec --------"
		mkdir baseline
		mkdir baseline
	    # Word output
	    # Word output
	    docker run --rm -v $(pwd):/data -u $(id -u):$(id -g) "$PANDOC_DOCKER_IMAGE" "/data/$i" -F mermaid-filter -f markdown+escaped_line_breaks -t docx --reference-doc "/data/${3}" -o "baseline/${4}_${2}.docx"
	    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 docx --reference-doc "/data/${3}" -o "baseline/${4}_${2}.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"'
	    #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 [ "$5" != "onlyDocx" ]; then
	    docker container run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) -w "/tmp" "$FORGELIB_DOCKER_IMAGE" forgelib-baseline $5 frontmatter.md "baseline/${4}_${2}.docx"
		if [ "$6" != "onlyDocx" ]; then
			#Do not convert to PDF or EPUB until a solution is found to include the spec cover pages
			# PDF Output
			# PDF Output
			docker run --rm -v $(pwd):/data -u $(id -u):$(id -g) "$PANDOC_DOCKER_IMAGE" "/data/$i" -F mermaid-filter -f markdown+escaped_line_breaks -t pdf -o "baseline/${4}_${2}.pdf"
			#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
			# EPUB Output
			docker run --rm -v $(pwd):/data -u $(id -u):$(id -g) "$PANDOC_DOCKER_IMAGE" "/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
			#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"
#hip Project"
		fi
		fi
	fi
	fi
done
done