|
- package cmd
-
- import (
- "fmt"
- "github.com/gookit/color"
- "github.com/urfave/cli/v2"
- "golib.gaore.com/GaoreGo/beegoinit-cmd/utils"
- "os"
- "path"
- "strings"
- )
-
- 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
- | | ├── base.go
- │ | └── index.go
- │ └── init.go
- ├── conf
- │ └──app.conf
- ├── runtime
- │ └── logs
- ├── static
- | └── js
- | └── css
- ├── main.go
- ├── Makefile
- └── README.md
- `
-
- var appconf = `appname = {{ packageName }}
-
- httpaddr = "${CENTER_HTTP_HOST||127.0.0.1}"
-
- httpport = "${CENTER_HTTP_PORT||8080}"
-
- runmode ="${CENTER_RUNMODE||prod}"
-
- copyrequestbody = true
-
- sessionon = true
-
- customviewdir = "views"
-
- custommodules = "api,web,openapi,admin"
-
- RouterCaseSensitive = false
-
- EnableGzip = true
-
- enablexsrf = true
-
- xsrfkey = 61oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1o
-
- xsrfexpire = 21600
- `
-
- 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 "{{ packageName }}/applications/_common/controllers"
- api "{{ packageName }}/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"
- _ "{{ packageName }}/applications"
- )
-
- func main() {
- defer toolbox.StopTask()
- toolbox.StartTask()
- beego.Run()
- }
- `
-
- var indextpl = `<h1 class="animation-slide-top">400</h1>`
-
- func New(c *cli.Context) error {
-
- var appPath string
- var packPath string
- var packageName string
- var err error
-
- if packPath == "." {
- packPath = path.Base(appPath)
- }
-
- fmt.Println(tree)
-
- appPath = c.String("apppath")
- if appPath == "" {
- if appPath, err = os.Getwd(); err != nil {
- return err
- }
- }
-
- packageName = c.String("package")
- if packageName == "" {
- packageName = path.Base(appPath)
- }
-
- color.Yellow.Println("Now current working directory is :", appPath)
- color.Yellow.Println("Now package name is default to :", packageName)
-
- 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", "controllers"), 0755)
-
- utils.WriteToFile(path.Join(appPath, "main1.go"), strings.ReplaceAll(mainfun, "{{ packageName }}", packageName))
- utils.WriteToFile(path.Join(appPath, "applications", "init.go"), strings.ReplaceAll(initfun, "{{ packageName }}", packageName))
- utils.WriteToFile(path.Join(appPath, "conf", "app.conf"), strings.ReplaceAll(appconf, "{{ packageName }}", packageName))
- 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)
-
- color.Yellow.Println("Finish ...")
- return nil
- }
|