diff --git a/README.md b/README.md index ad7c2df..176392b 100644 --- a/README.md +++ b/README.md @@ -8,4 +8,13 @@ A flexsible and powerful command line tool to initialize beego framework ``` go get golib.gaore.com/GaoreGo/beegoinit-cmd +``` + +## How to run +``` +{$GOPATH}/bin/beegoinit-cmd create +``` +e.g. +``` +~/go/bin/beegoinit-cmd create ``` \ No newline at end of file diff --git a/cmd/new.go b/cmd/new.go index 730b674..f3af51f 100644 --- a/cmd/new.go +++ b/cmd/new.go @@ -1,6 +1,12 @@ package cmd -import "github.com/urfave/cli/v2" +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 @@ -29,6 +35,164 @@ gen # 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 = `