-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathonboard_service.sh
executable file
·31 lines (24 loc) · 1.24 KB
/
onboard_service.sh
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
#!/bin/bash
set -eu
echo "What service are you onboarding?"
read service_name
service_name=$(echo "$service_name" | tr '[:upper:]' '[:lower:]')
test ! -f Makefile.${service_name} || (echo "${service_name} already onboarded" && exit 1)
echo "What is the URL for the OpenAPI spec for ${service_name}?"
read spec_url
spec_root_file=""
possible_spec_filename=${spec_url##*/}
if [[ $possible_spec_filename == *"."* ]]; then
spec_root_file=$possible_spec_filename
spec_url=${spec_url%/$spec_root_file}
fi
cp templates/Makefile.sdk Makefile.${service_name}
sed -i '' "s/__PACKAGE_NAME__/${service_name}/g" Makefile.${service_name}
sed -i '' "s|__SPEC_BASE_URL__|${spec_url}|g" Makefile.${service_name}
sed -i '' "s|__SPEC_ROOT_FILE__|${spec_root_file}|g" Makefile.${service_name}
cp templates/.github/workflows/sync.yaml .github/workflows/sync-${service_name}.yaml
sed -i '' "s/__PACKAGE_NAME__/${service_name}/g" .github/workflows/sync-${service_name}.yaml
mkdir -p spec/services/${service_name} && touch spec/services/${service_name}/.keep
mkdir -p templates/services/${service_name} && touch templates/services/${service_name}/.keep
mkdir -p patches/services/${service_name} && touch patches/services/${service_name}/.keep
make -f Makefile.${service_name} all