Skip to content

Commit 450332f

Browse files
committed
Merge remote-tracking branch 'ThalesGroup/json-schema-html-gen' into docs/docsgen-one-version-only
2 parents ca1a2fd + dc39a2a commit 450332f

File tree

1 file changed

+44
-6
lines changed

1 file changed

+44
-6
lines changed

docgen/json/gen.sh

Lines changed: 44 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,26 @@
11
#!/bin/bash
22
set -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+
419
THIS_PATH="$(realpath "$(dirname "$0")")"
520
SCHEMA_PATH="$(realpath "$THIS_PATH/../../schema")"
621
DOCS_PATH="$THIS_PATH/docs"
722
TEMPLATES_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.
1226
if ! [ -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

Comments
 (0)