From 4742b6eea38efdef9604884c3b12efbd137c8dcc Mon Sep 17 00:00:00 2001 From: david Date: Wed, 29 Jul 2026 16:25:03 +0800 Subject: [PATCH] fix cli single-file execution --- backend/api/cmd/cli/main.go | 46 +++++++++++++++++++++++ backend/api/cmd/cli/resource_contract.go | 48 ------------------------ 2 files changed, 46 insertions(+), 48 deletions(-) delete mode 100644 backend/api/cmd/cli/resource_contract.go diff --git a/backend/api/cmd/cli/main.go b/backend/api/cmd/cli/main.go index ecc381b..984e81a 100644 --- a/backend/api/cmd/cli/main.go +++ b/backend/api/cmd/cli/main.go @@ -2,13 +2,19 @@ package main import ( + "encoding/json" "fmt" + "io" "os" + "strings" "git.apinb.com/bsm-sdk/core/database" "git.apinb.com/heqiapp/platforms/backend/api/internal/config" "git.apinb.com/heqiapp/platforms/backend/api/internal/initdb" + "git.apinb.com/heqiapp/platforms/backend/api/internal/logic/platform" + "git.apinb.com/heqiapp/platforms/backend/api/internal/routers" "git.apinb.com/heqiapp/platforms/backend/api/internal/seed" + "github.com/gin-gonic/gin" ) const serviceKey = "heqi" @@ -43,6 +49,46 @@ func printUsage() { fmt.Fprintln(os.Stderr, "usage: platform-cli ") } +type route struct { + Method string `json:"method"` + Path string `json:"path"` +} + +type contract struct { + Domain string `json:"domain"` + Name string `json:"name"` + Path string `json:"path"` + PageKind string `json:"pageKind"` + Mode string `json:"mode"` +} + +type manifest struct { + Resources []contract `json:"resources"` + Routes []route `json:"routes"` +} + +func writeResourceContract(output io.Writer) error { + gin.SetMode(gin.ReleaseMode) + engine := gin.New() + routers.RegisterPlatform(serviceKey, engine) + routes := make([]route, 0, len(engine.Routes())) + for _, item := range engine.Routes() { + routes = append(routes, route{ + Method: item.Method, + Path: strings.TrimPrefix(item.Path, "/"+serviceKey+"/platform/v1"), + }) + } + expected := platform.ExpectedResources() + contracts := make([]contract, 0, len(expected)) + for _, item := range expected { + contracts = append(contracts, contract{ + Domain: item.Domain, Name: item.Name, Path: item.Path, + PageKind: item.PageKind, Mode: string(item.Mode), + }) + } + return json.NewEncoder(output).Encode(manifest{Resources: contracts, Routes: routes}) +} + func writeMockData() error { config.New("platform") if config.Spec.Databases == nil { diff --git a/backend/api/cmd/cli/resource_contract.go b/backend/api/cmd/cli/resource_contract.go deleted file mode 100644 index a3b733f..0000000 --- a/backend/api/cmd/cli/resource_contract.go +++ /dev/null @@ -1,48 +0,0 @@ -package main - -import ( - "encoding/json" - "io" - "strings" - - "git.apinb.com/heqiapp/platforms/backend/api/internal/logic/platform" - "git.apinb.com/heqiapp/platforms/backend/api/internal/routers" - "github.com/gin-gonic/gin" -) - -type route struct { - Method string `json:"method"` - Path string `json:"path"` -} - -type contract struct { - Domain string `json:"domain"` - Name string `json:"name"` - Path string `json:"path"` - PageKind string `json:"pageKind"` - Mode string `json:"mode"` -} - -type manifest struct { - Resources []contract `json:"resources"` - Routes []route `json:"routes"` -} - -func writeResourceContract(output io.Writer) error { - gin.SetMode(gin.ReleaseMode) - engine := gin.New() - routers.RegisterPlatform("heqi", engine) - routes := make([]route, 0, len(engine.Routes())) - for _, item := range engine.Routes() { - routes = append(routes, route{Method: item.Method, Path: strings.TrimPrefix(item.Path, "/heqi/platform/v1")}) - } - expected := platform.ExpectedResources() - contracts := make([]contract, 0, len(expected)) - for _, item := range expected { - contracts = append(contracts, contract{ - Domain: item.Domain, Name: item.Name, Path: item.Path, - PageKind: item.PageKind, Mode: string(item.Mode), - }) - } - return json.NewEncoder(output).Encode(manifest{Resources: contracts, Routes: routes}) -}