Commit 30fa5a0c authored by Michele Carignani's avatar Michele Carignani
Browse files

Added generation of PDF exports for each OpenAPI artifact.



Change-Id: I0b0ca10d454a2fbab170f7b22bb29eeabb05df71
Signed-off-by: default avatarMichele Carignani <michele.carignani@etsi.org>
parent 3ba651b6
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ run_dir="$(pwd)"

rm build/*-API.yaml
rm build/*-API.json
rm build/*-API.pdf

cd docker

+13 −0
Original line number Diff line number Diff line
@@ -14,6 +14,13 @@ RUN apk update
RUN apk add bash
RUN apk add nodejs
RUN apk add nodejs-npm
RUN apk add asciidoctor
RUN apk add openjdk8
RUN apk add ca-certificates && update-ca-certificates 
RUN apk add openssl
RUN gem install rdoc --pre || gem install rdoc --pre
RUN gem install asciidoctor-pdf-cjk
RUN wget https://forge.etsi.org/swagger2markup-cli-1.3.2.jar
RUN npm config set proxy $http_proxy
RUN npm install -g swagger-tools@0.10.3
RUN npm install -g json-refs@3.0.2
@@ -22,5 +29,11 @@ RUN npm install -g yamljs@0.3.0
ADD validate-in-docker.sh /validate-in-docker.sh
RUN chmod +x /validate-in-docker.sh

ADD swg2mrkup /bin/swg2mrkup
RUN chmod +x /bin/swg2mrkup

ADD oas2pdf /bin/oas2pdf
RUN chmod +x /bin/oas2pdf

ENTRYPOINT ["/validate-in-docker.sh"]

docker/oas2pdf

0 → 100755
+61 −0
Original line number Diff line number Diff line
#!/bin/bash
#Copyright (c) ETSI 2017.

# This software is subject to copyrights owned by ETSI. Non-exclusive permission 
# is hereby granted, free of charge, to copy, reproduce and amend this file 
# under the following conditions: It is provided "as is", without warranty of any 
# kind, expressed or implied. 

# ETSI shall never be liable for any claim, damages, or other liability arising 
# from its use or inability of use.This permission does not apply to any documentation 
# associated with this file for which ETSI keeps all rights reserved. The present 
# copyright notice shall be included in all copies of whole or part of this 
# software and shall not imply any sub-license right.
#
# Author: michele.carignani@etsi.org
#
# This script takes an OpenAPI file in input and creates
# a PDF file with the content.
#
# Prerequisites: 
#  - https://github.com/Swagger2Markup/swagger2markup-cli
#  - Asciidoctor (sudo apt-get install asciidoctor)
#  - Asciidoctor-pdf (sudo gem install asciidoctor-pdf)
#
# Usage:
#    oas2pdf <oasfile> (e.g. myapi.json)
#
# Result:
#    A new pdf file is created in the working directory (e.g. myapi.pdf)
#
#
#
#

# Configuration

# Change this if needed
SWG2MRKUP=swg2mrkup
ASCIIDOCPDF=asciidoctor-pdf

# Setup
WD=$(pwd)
TWD=$(mktemp -d)

INFILE=$(basename ${1?"Error: missing input file name"} )
OUTFILE="${INFILE%.*}"

echo "$INFILE, $OUTFILE"

echo "Converting to asciidoc.."
${SWG2MRKUP} convert -i "$1" -f "$TWD/$OUTFILE"
echo

echo "Converting to PDF.."
"${ASCIIDOCPDF}" "$TWD/${OUTFILE}.adoc" -o "$WD/${OUTFILE}.pdf"
echo

echo "Done."
# Clean up
rm -r $TWD

docker/swg2mrkup

0 → 100755
+17 −0
Original line number Diff line number Diff line
#!/bin/bash
#Copyright (c) ETSI 2017.

# This software is subject to copyrights owned by ETSI. Non-exclusive permission 
# is hereby granted, free of charge, to copy, reproduce and amend this file 
# under the following conditions: It is provided "as is", without warranty of any 
# kind, expressed or implied. 

# ETSI shall never be liable for any claim, damages, or other liability arising 
# from its use or inability of use.This permission does not apply to any documentation 
# associated with this file for which ETSI keeps all rights reserved. The present 
# copyright notice shall be included in all copies of whole or part of this 
# software and shall not imply any sub-license right.
#
# Author: michele.carignani@etsi.org

java -jar /swagger2markup-cli-1.3.2.jar $@
+7 −0
Original line number Diff line number Diff line
@@ -26,6 +26,11 @@ function validate_api () {
  json-refs resolve "${file}" > "${merged_file}"
  yaml2json "${merged_file}" > "${json_file}"
  
  # Create the PDF version
  echo "--- Create PDF..."
  oas2pdf "${json_file}" 2>/dev/null 1>/dev/null 
  mv "${deliverable}-${api}-API.pdf" "../build/"

  echo "--- Validating ${merged_file}"
  swagger-tools validate "${merged_file}"
  vres=$?
@@ -34,6 +39,8 @@ function validate_api () {
  # If validation succedes, store the generated file
  [ $vres -a -d "/storage" ] && store_api "${merged_file}"
  [ $vres -a -d "/storage" ] && store_api "${json_file}"
  [ $vres -a -d "/storage" ] && store_api "../build/${deliverable}-${api}-API.pdf"
  
  
  return $vres
}
+3 −3

File changed.

Contains only whitespace changes.

Loading