You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Allow the docs generators to run for a certain version.
Previously, they always ran for all in series.
---
> original from #507 from @Nicolas-Peiffer
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:
```bash
./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:
```bash
# 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:
```bash
./gen.sh my_cdx_dev_draft
```
Which creates only the HTML for `my_cdx_dev_draft`
```bash
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:
```bash
./gen.sh
```
```bash
ls -1 docgen/json/docs/
1.2
1.3
1.4
1.5
1.6
```
I also added a small usage help message.
```bash
./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.
----
supersedes #507closes#507
0 commit comments