@@ -25,46 +25,36 @@ set -euo pipefail
2525_print_usage () {
2626 echo
2727 echo ' Usage:'
28- echo ' ./cdk.sh "<RESOURCE NAME>"'
28+ echo ' ./script/ cdk.sh "<RESOURCE NAME>"'
2929 echo
3030 echo ' Example:'
31- echo ' ./cdk.sh cluster '
31+ echo ' ./script/ cdk.sh database-user '
3232 echo
3333}
3434
35-
3635if [ " $# " -ne 1 ]; then
3736 echo " Error: please provide the resource name"
3837 _print_usage
3938 exit 1
4039fi
4140
42- script_dir=" $( cd " $( dirname " $0 " ) " && pwd) "
43- root_dir=" $( cd " ${script_dir} /.." && pwd) "
44-
4541resource=$1
46- echo " Generating L1 CDK resource"
47- dir=" ${root_dir} /submodules/mongodbatlas-cloudformation-resources/cfn-resources/${resource} "
48-
49-
50- for file in " ${dir} " /mongodb-atlas-* .json; do
51- if [[ -f $file ]]; then
52- src=$( jq -r ' .typeName' " ${file} " )
53- echo " generating for $src "
54- path=$( basename " ${dir} " )
55-
56- if [ -f l1-resources/" ${path} " /src/index.ts ]; then
57- rm -rf l1-resources/" ${path} " /src/* .ts
58- fi
59-
60- # NOTE: known_issue MODULE_NOT_FOUND error.
61- # When the Resource is not merged to main branch of submodule, you see the above error.
62- cdk-import cfn -l typescript -s " ${file} " -o " src/l1-resources/${path} " " ${src} "
63- # need rename resource file to index.ts file
64- dest=" src/l1-resources/${path} /index.ts"
65- mv " src/l1-resources/${path} /mongodb-atlas-${path// -/ } .ts" " ${dest} "
66- python " ${root_dir} /scripts/rename_in_file.py" " ${dest} "
67- fi
68- done
69-
70- echo " Done"
42+ resourceNoDashes=${resource// -/ }
43+ mainFileRoot=" mongodb-atlas-${resourceNoDashes} "
44+ temp_dir=$( mktemp -d)
45+ trap ' rm -rf "$temp_dir"' EXIT # temp dir cleanup when script exits
46+ resourceHttp=" https://raw.githubusercontent.com/mongodb/mongodbatlas-cloudformation-resources/master/cfn-resources/${resource} /${mainFileRoot} .json"
47+ resourceTemp=" ${temp_dir} /${mainFileRoot} .json"
48+
49+ echo " Generating L1 CDK resource: ${resource} , resourceNoDashes: ${resourceNoDashes} , resourceHttp: ${resourceHttp} "
50+ curl -sSfL -o " ${resourceTemp} " " ${resourceHttp} "
51+ resourceType=$( jq -r ' .typeName' " ${resourceTemp} " )
52+ cdk-import cfn -l typescript -s " ${resourceTemp} " -o " src/l1-resources/${resource} " " ${resourceType} "
53+
54+ # Rename resource file to index.ts file
55+ dest=" src/l1-resources/${resource} /index.ts"
56+ mv " src/l1-resources/${resource} /${mainFileRoot} .ts" " ${dest} "
57+ python " ./scripts/rename_in_file.py" " ${dest} "
58+
59+ echo
60+ echo " L1 CDK resource generated succesfully: ${resource} , CFN type: ${resourceType} "
0 commit comments