You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.5 KiB
Go
61 lines
1.5 KiB
Go
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)
|
|
}
|