11#! /bin/bash
22set -eu
33
4+
5+
6+ CYCLONEDX_VERSIONS=(' 1.6' ' 1.5' ' 1.4' ' 1.3' ' 1.2' )
7+
8+ # region help
9+
10+ USAGE_HELP="
11+ Generate HTML JSON Schema navigator for CycloneDX
12+ Usage: $0 <version> : runs only for a certain version (${CYCLONEDX_VERSIONS[@]} )
13+ $0 : loops over all valid and draft CycloneDX versions
14+ $0 --help : give this help list
15+ "
16+
17+ # endregion help
18+
419THIS_PATH=" $( realpath " $( dirname " $0 " ) " ) "
520SCHEMA_PATH=" $( realpath " $THIS_PATH /../../schema" ) "
621DOCS_PATH=" $THIS_PATH /docs"
722TEMPLATES_PATH=" $THIS_PATH /templates"
823
9- rm -f -R " $DOCS_PATH "
1024
1125# Check to see if generate-schema-doc is executable and is in the path. If not, install JSON Schema for Humans.
1226if ! [ -x " $( command -v generate-schema-doc) " ]
@@ -20,6 +34,9 @@ generate () {
2034 title=" CycloneDX v${version} JSON Reference"
2135 echo " Generating: $title "
2236
37+ rm -f -R " $DOCS_PATH /$version "
38+ mkdir -p
39+
2340 SCHEMA_FILE=" $SCHEMA_PATH /bom-${version} .schema.json"
2441 STRICT_SCHEMA_FILE=" $SCHEMA_PATH /bom-${version} -strict.schema.json"
2542 if [ -f " $STRICT_SCHEMA_FILE " ]
@@ -47,8 +64,29 @@ generate () {
4764 sed -i -e " s/\$ {version}/$version /g" " $OUT_FILE "
4865}
4966
50- generate 1.2
51- generate 1.3
52- generate 1.4
53- generate 1.5
54- generate 1.6
67+
68+ # Main logic to handle the argument using a switch case
69+ case " $# " in
70+ 0)
71+ # No arguments provided: Loop over all VALID_CYCLONEDX_VERSIONS and DRAFT_CYCLONEDX_VERSIONS
72+ for version in " ${CYCLONEDX_VERSIONS[@]} " ; do
73+ generate " $version "
74+ done
75+ ;;
76+ 1)
77+ case " $1 " in
78+ ' -h' |' --help' )
79+ echo " Usage: $USAGE_HELP "
80+ ;;
81+ * )
82+ # One argument provided: Call generate with the specific version
83+ generate " $1 "
84+ ;;
85+ esac
86+ ;;
87+ * )
88+ # More than one argument provided: Show usage help
89+ echo " Usage: $USAGE_HELP "
90+ exit 1
91+ ;;
92+ esac
0 commit comments