45 lines
1.1 KiB
YAML
45 lines
1.1 KiB
YAML
---
|
|
# https://taskfile.dev
|
|
|
|
version: "3"
|
|
|
|
tasks:
|
|
lint:
|
|
cmds:
|
|
- |
|
|
for file in serviceAPIs/*.yml serviceAPIs/*.yaml; do
|
|
if [[ -f "$file" ]]; then
|
|
vacuum lint $file -b -d --no-clip -z -n info -s \
|
|
-r vaccum.conf.yaml {{.CLI_ARGS}}
|
|
fi
|
|
done
|
|
generate:
|
|
- |
|
|
generateGo() {
|
|
mkdir -p $2
|
|
oapi-codegen \
|
|
-generate $4 \
|
|
-config .openapi.yml \
|
|
-package $1 \
|
|
-o $2/api.gen.go \
|
|
$3
|
|
}
|
|
|
|
# Below3 the gererateGo for ./pkg is the public client package
|
|
# and ./api is the internal server package
|
|
for file in serviceAPIs/*.yml serviceAPIs/*.yaml; do
|
|
if [[ -f "$file" ]]; then
|
|
service=$(basename "$file")
|
|
service=${service%.*}
|
|
service_lower=${service,,}
|
|
|
|
# Client Code
|
|
generateGo $service_lower ./pkg/$service $file \
|
|
"models,client"
|
|
|
|
# Server Code
|
|
generateGo $service_lower ./api/$service $file \
|
|
"models,embedded-spec,echo-server"
|
|
fi
|
|
done
|