make方法增加创建配置文件
This commit is contained in:
25
cmd/make.go
25
cmd/make.go
@@ -25,7 +25,8 @@ var (
|
||||
{Name: "name", Short: "n", Brief: "服务文件名"},
|
||||
},
|
||||
Examples: "make -m act -i 1: 创建活动1的接口与服务文件 \n" +
|
||||
"make -m logic -n test: 创建test的服务文件",
|
||||
"make -m logic -n test: 创建test的服务文件 \n" +
|
||||
"make -m config -n test: 创建配置文件",
|
||||
Func: func(ctx context.Context, parser *gcmd.Parser) (err error) {
|
||||
|
||||
//g.Dump(parser.GetOptAll(), parser.GetArgAll())
|
||||
@@ -46,6 +47,12 @@ var (
|
||||
return
|
||||
}
|
||||
err = this.Logic(name)
|
||||
case "config":
|
||||
var name = parser.GetOpt("name").String()
|
||||
if name == "" {
|
||||
return
|
||||
}
|
||||
err = this.Config(name)
|
||||
}
|
||||
|
||||
return
|
||||
@@ -93,3 +100,19 @@ func (c *cMake) Logic(name string) (err error) {
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func (c *cMake) Config(name string) (err error) {
|
||||
var filePath = fmt.Sprintf("utility/config/%s.go", name)
|
||||
//生成文件不覆盖
|
||||
if !gfile.Exists(filePath) {
|
||||
get, _ := fs.ReadFile(ConfigFiles, "make/config")
|
||||
fileStr := string(get)
|
||||
fileStr = gstr.Replace(fileStr, "{name}", gstr.CaseCamel(name))
|
||||
fileStr = gstr.Replace(fileStr, "{cfg}", gstr.CaseCamel(name))
|
||||
fileStr = gstr.Replace(fileStr, "{mod}", gstr.CaseCamelLower(name))
|
||||
fileStr = gstr.Replace(fileStr, "{file}", name)
|
||||
err = gfile.PutContents(filePath, fileStr)
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
51
cmd/make/config
Normal file
51
cmd/make/config
Normal file
@@ -0,0 +1,51 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"github.com/ayflying/utility_go"
|
||||
"github.com/gogf/gf/v2/util/gutil"
|
||||
"sync"
|
||||
)
|
||||
|
||||
type {cfg}Cfg struct {
|
||||
Id int32 `json:"id" dc:"编号"`
|
||||
}
|
||||
|
||||
type {mod}Mod struct {
|
||||
once sync.Once
|
||||
lock sync.Mutex
|
||||
cfgArr []*{cfg}Cfg
|
||||
cfgMap map[int32]*{cfg}Cfg
|
||||
}
|
||||
|
||||
var {name} = &{mod}Mod{}
|
||||
|
||||
func (c *{mod}Mod) Load(_cfg ...string) {
|
||||
c.lock.Lock()
|
||||
defer c.lock.Unlock()
|
||||
c.cfgArr = make([]*{cfg}Cfg, 0)
|
||||
data, err := utility_go.Config.GetFile("{file}")
|
||||
err = data.Scan(&c.cfgArr)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
c.cfgMap = make(map[int32]*{cfg}Cfg)
|
||||
for _, v := range c.cfgArr {
|
||||
c.cfgMap[v.Id] = v
|
||||
}
|
||||
}
|
||||
|
||||
func (c *{mod}Mod) List() []*{cfg}Cfg {
|
||||
var list = make([]*{cfg}Cfg, len(c.cfgArr))
|
||||
for k, v := range c.cfgArr {
|
||||
list[k] = c.Get(v.Id)
|
||||
}
|
||||
return list
|
||||
}
|
||||
|
||||
func (c *{mod}Mod) Get(id int32) *{cfg}Cfg {
|
||||
if data, ok := c.cfgMap[id]; ok {
|
||||
return gutil.Copy(data).(*{cfg}Cfg)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user