package cmd import ( "fmt" "github.com/urfave/cli/v2" "golib.gaore.com/GaoreGo/beegoinit-cmd/utils" "os" "path" ) var gitignore = `# Created by .ignore support plugin (hsz.mobi) ### Example user template template ### Example user template # IntelliJ project files .idea *.iml out gen /runtime ### Go template # Binaries for programs and plugins *.exe *.exe~ *.dll *.so *.dylib # Test binary, built with 'go test -c\' *.test # Output of the go coverage tool, specifically when used with LiteIDE *.out # Dependency directories (remove the comment below to include it) # vendor/` var tree = ` . ├── applications │ ├── _common │ ├── api │ | └── index.go │ └── init.go ├── cli │ └── test ├── conf │ └──app.conf ├── main.go ├── runtime │ └── logs ├── static ├── Makefile └── README.md ` var initfun = ` package applications import ( "errors" "github.com/astaxie/beego" "golib.gaore.com/GaoreGo/beegoinit/response" router "golib.gaore.com/GaoreGo/beegoinit/routers" "golib.gaore.com/GaoreGo/grconfig" "golib.gaore.com/GaoreGo/grlogs" common "jedi.gaore.com/applications/_common/controllers" api "jedi.gaore.com/applications/api/controllers" "strings" ) func init() { router.AddController("api", new(api.IndexController)) // 通用路由处理 router.ErrorController(&common.ErrorController{}) beego.Router("/", &api.IndexController{}, "get:Index") beego.SetStaticPath("/assets", "static") if err := beego.AddViewPath("applications/_common/views"); err != nil { grlogs.Error(err) } } ` var indexcontroller = ` package controllers import ( ) type IndexController struct { baseController } func (this *IndexController) Index() { this.Ctx.WriteString("ok") this.StopRun() } ` var basecontroller = ` package controllers import ( "github.com/astaxie/beego" "golib.gaore.com/GaoreGo/beegoinit/mvc" "golib.gaore.com/GaoreGo/grconfig" "path" ) type baseController struct { Configer *grconfig.Configer mvc.BaseController } func (this *baseController) NestPrepare() { this.Configer = grconfig.New(path.Join(beego.WorkPath, "conf/")) this.EnableXSRF = false this.StopRender() } ` var errcontroller = ` package controllers import ( "golib.gaore.com/GaoreGo/beegoinit/mvc" "golib.gaore.com/GaoreGo/beegoinit/response" "strings" ) type ErrorController struct { mvc.BaseController } func (this *ErrorController) NestPrepare() { this.ViewPath = "applications/_common/views" } func (this *ErrorController) Error404() { if this.IsAjax() || strings.Contains(strings.ToLower(this.Ctx.Input.Header("Accept")), "json") { resp := response.NewJsonByDefaultFailed() this.Data["json"] = resp this.ServeJSON() } else { this.Data["content"] = "page not found" this.TplName = "404.tpl" } } ` var mainfun = ` package main import ( "github.com/astaxie/beego" "github.com/astaxie/beego/toolbox" _ "golib.gaore.com/GaoreGo/beegoinit" _ "jedi.gaore.com/applications" ) func main() { defer toolbox.StopTask() toolbox.StartTask() beego.Run() } ` var indextpl = `

400

` func New(c *cli.Context) error { var appPath string var packPath string if packPath == "." { packPath = path.Base(appPath) } fmt.Println(tree) appPath = "." os.Mkdir(path.Join(appPath, "static"), 0755) os.Mkdir(path.Join(appPath, "conf"), 0755) os.Mkdir(path.Join(appPath, "cli"), 0755) os.MkdirAll(path.Join(appPath, "runtime", "logs"), 0755) os.MkdirAll(path.Join(appPath, "applications", "_common", "controllers"), 0755) os.MkdirAll(path.Join(appPath, "applications", "_common", "views"), 0755) os.MkdirAll(path.Join(appPath, "applications", "api", "controlelrs"), 0755) utils.WriteToFile(path.Join(appPath, "main.go"), mainfun) utils.WriteToFile(path.Join(appPath, "applications", "init.go"), initfun) utils.WriteToFile(path.Join(appPath, "applications", "_common", "views", "404.tpl"), indextpl) utils.WriteToFile(path.Join(appPath, "applications", "_common", "views", "403.tpl"), indextpl) utils.WriteToFile(path.Join(appPath, "applications", "_common", "controllers", "error.go"), errcontroller) utils.WriteToFile(path.Join(appPath, "applications", "api", "controllers", "base.go"), basecontroller) utils.WriteToFile(path.Join(appPath, "applications", "api", "controllers", "index.go"), indexcontroller) return nil }