make_model.go 805 B

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