package make import ( "fmt" "os" "github.com/spf13/cobra" ) var CmdMakeModel = &cobra.Command{ Use: "model", Short: "Create model file, example: make model user", Run: runMakeModel, Args: cobra.ExactArgs(1), // 只允许且必须传 1 个参数 } func runMakeModel(cmd *cobra.Command, args []string) { // 格式化模型名称,返回一个 Model 实例 model := makeModelFromString(args[0]) // 目录, 例如: `app/models/user/` dir := fmt.Sprintf("app/models/%s/", model.PackageName) _ = os.MkdirAll(dir, os.ModePerm) // 替换变量 createFileFromTpl(dir+model.PackageName+"_model.go", "model/model", model) createFileFromTpl(dir+model.PackageName+"_util.go", "model/model_util", model) createFileFromTpl(dir+model.PackageName+"_hooks.go", "model/model_hooks", model) }