1\
This commit is contained in:
90
cmd/app/server.go
Normal file
90
cmd/app/server.go
Normal file
@ -0,0 +1,90 @@
|
||||
package app
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/pkg"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/pkg/utils"
|
||||
"github.com/spf13/cobra"
|
||||
"text/template"
|
||||
)
|
||||
|
||||
var (
|
||||
appName string
|
||||
StartCmd = &cobra.Command{
|
||||
Use: "app",
|
||||
Short: "Create a new app",
|
||||
Long: "Use when you need to create a new app",
|
||||
Example: "go-admin app -n admin",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
run()
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
func init() {
|
||||
StartCmd.PersistentFlags().StringVarP(&appName, "name", "n", "", "Start server with provided configuration file")
|
||||
}
|
||||
|
||||
func run() {
|
||||
|
||||
fmt.Println(`start init`)
|
||||
//1. 读取配置
|
||||
|
||||
fmt.Println(`generate migration file`)
|
||||
_ = genFile()
|
||||
|
||||
}
|
||||
|
||||
func genFile() error {
|
||||
if appName == "" {
|
||||
return errors.New("arg `name` invalid :name is empty")
|
||||
}
|
||||
path := "app/"
|
||||
appPath := path + appName
|
||||
err := utils.IsNotExistMkDir(appPath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
apiPath := appPath + "/apis/"
|
||||
err = utils.IsNotExistMkDir(apiPath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
modelsPath := appPath + "/models/"
|
||||
err = utils.IsNotExistMkDir(modelsPath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
routerPath := appPath + "/router/"
|
||||
err = utils.IsNotExistMkDir(routerPath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
servicePath := appPath + "/service/"
|
||||
err = utils.IsNotExistMkDir(servicePath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
dtoPath := appPath + "/service/dto/"
|
||||
err = utils.IsNotExistMkDir(dtoPath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
t1, err := template.ParseFiles("template/cmd_api.template")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
m := map[string]string{}
|
||||
m["appName"] = appName
|
||||
var b1 bytes.Buffer
|
||||
err = t1.Execute(&b1, m)
|
||||
pkg.FileCreate(b1, "./cmd/api/"+appName+".go")
|
||||
t2, err := template.ParseFiles("template/router.template")
|
||||
var b2 bytes.Buffer
|
||||
err = t2.Execute(&b2, nil)
|
||||
pkg.FileCreate(b2, appPath+"/router/router.go")
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user