Files

48 lines
1.3 KiB
YAML
Raw Permalink Normal View History

---
# https://taskfile.dev
version: "3"
tasks:
lint:
desc: "Lint every OpenAPI spec under serviceAPIs/ with vacuum"
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:
desc: "Generate Go server (./api) and client (./pkg) code from OpenAPI specs"
cmds:
- |
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,,}
2025-04-08 12:44:09 +00:00
# Client Code
generateGo $service_lower ./pkg/$service $file \
"models,client"
2025-04-08 12:44:09 +00:00
# Server Code
generateGo $service_lower ./api/$service $file \
"models,embedded-spec,echo-server"
fi
done