feat(goctl): Support gateway sample generation (#3049)
This commit is contained in:
60
tools/goctl/gateway/cmd.go
Normal file
60
tools/goctl/gateway/cmd.go
Normal file
@@ -0,0 +1,60 @@
|
||||
package gateway
|
||||
|
||||
import (
|
||||
_ "embed"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/zeromicro/go-zero/tools/goctl/internal/cobrax"
|
||||
"github.com/zeromicro/go-zero/tools/goctl/util/ctx"
|
||||
"github.com/zeromicro/go-zero/tools/goctl/util/pathx"
|
||||
)
|
||||
|
||||
var (
|
||||
varStringHome string
|
||||
varStringRemote string
|
||||
varStringBranch string
|
||||
varStringDir string
|
||||
|
||||
Cmd = cobrax.NewCommand("gateway", cobrax.WithRunE(generateGateway))
|
||||
)
|
||||
|
||||
func init() {
|
||||
Cmd.PersistentFlags().StringVar(&varStringHome, "home")
|
||||
Cmd.PersistentFlags().StringVar(&varStringRemote, "remote")
|
||||
Cmd.PersistentFlags().StringVar(&varStringBranch, "branch")
|
||||
Cmd.PersistentFlags().StringVar(&varStringDir, "dir")
|
||||
}
|
||||
|
||||
func generateGateway(*cobra.Command, []string) error {
|
||||
if err:=pathx.MkdirIfNotExist(varStringDir);err!=nil{
|
||||
return err
|
||||
}
|
||||
|
||||
if _,err:=ctx.Prepare(varStringDir);err!=nil{
|
||||
return err
|
||||
}
|
||||
|
||||
etcContent, err := pathx.LoadTemplate(category, etcTemplateFileFile, etcTemplate)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
mainContent, err := pathx.LoadTemplate(category, mainTemplateFile, mainTemplate)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
etcDir := filepath.Join(varStringDir, "etc")
|
||||
if err := pathx.MkdirIfNotExist(etcDir); err != nil {
|
||||
return err
|
||||
}
|
||||
etcFile := filepath.Join(etcDir, "gateway.yaml")
|
||||
if err := os.WriteFile(etcFile, []byte(etcContent), 0644); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
mainFile := filepath.Join(varStringDir, "main.go")
|
||||
return os.WriteFile(mainFile, []byte(mainContent), 0644)
|
||||
}
|
||||
Reference in New Issue
Block a user