//go:build createApp package server import ( "bytes" "fmt" "log" "text/template" "IotAdmin/core/sdk/pkg" "IotAdmin/core/sdk/pkg/utils" _ "IotAdmin/migration/version" _ "IotAdmin/migration/version-local" "github.com/spf13/pflag" ) var ( //获取命令行参数 appName = pflag.StringP("name", "n", "", "选择租户域名") ) func Init() { if *appName == "" { fmt.Println(`请输入应用名称 -n={应用名称}`) log.Println("arg `name` invalid :name is empty") } else { err := setup(*appName) if err != nil { log.Println("创建应用失败:" + err.Error()) } } } func setup(name string) error { path := "app/" appPath := path + name fmt.Println(`开始创建应用 => ` + appPath) 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 } tInitRouter, err := template.ParseFiles("template/router.init.template") if err != nil { return err } m := map[string]string{} m["appName"] = name var bInitRouter bytes.Buffer err = tInitRouter.Execute(&bInitRouter, m) pkg.FileCreate(bInitRouter, "./app/router/"+name+".go") tRouter, err := template.ParseFiles("template/router.app.template") var bRouter bytes.Buffer err = tRouter.Execute(&bRouter, nil) pkg.FileCreate(bRouter, appPath+"/router/router.go") fmt.Println(name + ` 应用创建成功`) return nil }