JSON Schema HTML viewer generator script supports generating for one particular CDX version
The JSON Schema HTML viewer generator script docgen/json/gen.sh supports generating only for one particular CycloneDX version, including the possibility of generating the HTML only for draft version of CycloneDX during dev time.
Use Case
I want to propose new objects in the CycloneDX Specification. And for checking the JSON Schema, I like to locally use the HTML view to check the content of the JSON Schema.
However, during dev time when I was modifying the JSON Schema, I found it not convenient that the script docgen/json/gen.sh regenerate the HTML doc for every version of CycloneDX each time I run it when I only need the version I am working on.
Proposition
I modified the script docgen/json/gen.sh to be able to run gen.sh only for a particular version of CycloneDX.
For example:
./gen.sh 1.6
But I also added a list DRAFT_CYCLONEDX_VERSIONS for when I am working on a draft proposition of CycloneDX spec.
For example:
# I modify `docgen/json/gen.sh` to add the name of my draft file
DRAFT_CYCLONEDX_VERSIONS=(my_cdx_dev_draft)
I create a JSON schema draft file schema/bom-my_cdx_dev_draft.schema.json:
Then I run:
./gen.sh my_cdx_dev_draft
Which creates only the HTML for my_cdx_dev_draft
tree docgen/json/docs/my_cdx_dev_draft/
docgen/json/docs/my_cdx_dev_draft/
├── index.html
├── schema_doc.css
└── schema_doc.min.j
And in order not to disturb the way docgen/json/gen.sh works now, running it without argument generates the HTML for all the CDX versions:
./gen.sh
ls -1 docgen/json/docs/
1.2
1.3
1.4
1.5
1.6
I also added a small usage help message.
./gen.sh -h
Deleting folder /home/thedetective/Documents/dev-workspace/cyclonedx/cyclonedx-specification.thalesgroup/docgen/json/docs
Usage: Generate HTML JSON Schema navigator for CyccloneDX
Usage: ./gen.sh <version> : runs only for <version>
./gen.sh : loops over all valid and draft CycloneDX versions
What about docgen/xml/gen.sh ?
I will probably propose the same kind of modification to the XML docgen/xml/gen.sh script to achieve the same results.
Conclusion
There are probably other way to achieve this result. I think this one is the cheapest in terms of how the gen.sh script is modified.