-
Notifications
You must be signed in to change notification settings - Fork 174
Expand file tree
/
Copy pathmergeswag.sh
More file actions
executable file
·33 lines (24 loc) · 889 Bytes
/
mergeswag.sh
File metadata and controls
executable file
·33 lines (24 loc) · 889 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/usr/bin/env bash
# Mergeswag.sh merges JSON-encoded Swagger specification files into one mongo file
# called swagger.json.
[ -z "$1" ] && [[ "$1" =~ ^(1|2)$ ]] && echo >&2 "Please specify a valid API version number for merged swagger.json file" && exit 1
[ -z "$2" ] && echo >&2 "Please specify at least one folder to search for .swagger.json files" && exit 1
set -euo pipefail
src=$(mktemp -d)
trap 'rm -rf "${src}"' EXIT
for folder in "${@:2}"; do
find "$folder/" -name '*.swagger.json' -exec cp {} $src \;
done
export TITLE="API Reference"
export VERSION="$1"
export DESCRIPTION="API reference for the StackRox Security Platform"
metadata='{
"info": {
"title": env.TITLE,
"version": env.VERSION,
"description": env.DESCRIPTION,
}
}'
find "$src" -type f -name "*" -print0 \
| sort -zr \
| xargs -0 jq -s 'reduce .[] as $item ('"$metadata"'; $item * .)'