Files
complie-erlang/cmd/mod.go
T
2025-10-10 11:55:44 +08:00

88 lines
1.9 KiB
Go

package cmd
import (
"complie-erlang/config"
"complie-erlang/parser/zm_lib"
"complie-erlang/worker"
"fmt"
"github.com/spf13/cobra"
"log"
)
type modSet struct {
author string
}
func (m *modSet) run(cmd *cobra.Command, args []string) {
if len(args) == 0 {
_ = cmd.Help()
return
}
modName := args[0]
modArgs := args[1:]
var DefaultArgs []config.DefaultArg
DefaultArgs = append(DefaultArgs, config.DefaultArg{
Key: "Author",
Value: m.author,
})
if err := worker.ModWorkerRun(modName, modArgs, DefaultArgs); err != nil {
log.Printf("[error] mod worker run error: %v", err)
}
fmt.Printf("ok \n")
}
func init() {
var singleSet = new(modSet)
var singleCmd = &cobra.Command{
Use: "mod",
Short: "根据约定模板生成 多个文件构建 功能模版",
Long: `
- 根据约定模板生成
mod activity activity_test
mod func test1
`,
Run: singleSet.run,
}
_ = zm_lib.PersistentFlagsStringVar(singleCmd, &singleSet.author, globalCache, "author", "st,sutong@youkia.net", "作者")
rootCmd.AddCommand(singleCmd)
}
/*
template_dir: "./templates/*.tpl" ## 模版 目录
plugin: "plugin" ## 源代码文件夹地址
mod_configs:
- name: "func"
worker: "proto"
proto_name: "../gpb/game/pro_%s.proto"
make_dir:
- path: "game/src/%s"
name: "src"
out_files:
- base_dir: "game/src/%s"
file_name: "%s_port.erl"
content_template: "ErlangPort"
- name: "activity"
worker: "proto"
proto_name: "../gpb/game/pro_activity_%s.proto"
make_dir:
- path: "game/activity/mods/single_server/%s/src"
name: "src"
- path: "game/activity/mods/single_server/%s/.cfg"
name: "cfg"
out_files:
- base_dir: "src"
file_name: "%s_port.erl"
content_template: "ActivityErlangPort"
- base_dir: "src"
file_name: "%s.erl"
content_template: "ActivityErlang"
*/