Categorygithub.com/zhb127/easydev
repositorypackage
0.0.0-20240509082431-97f8525c2b2d
Repository: https://github.com/zhb127/easydev.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# README

easydev

一款简单的开发辅助命令行工具。

包含:

  • render
    • tmpldir:渲染模板目录输出
  • prompt
    • select:交互式选择

渲染模板目录输出

easydev render tmpldir

选项:

  • -i, -input-dir:模板目录
  • -o, -output-dir:输出目录
  • -c, -config:配置文件
  • -d, -debug:调试(输出 DEBUG 日志)
  • -dry-run:试运行模式(不执行真实操作)

模板目录示例

// 文件位置:test/data/render-tmpldir/template

└── template                                // 模板目录
    ├── biz                                 // 待创建的目录(已存在,则跳过)
    │   └── {{.ResourceNameSC}}.go.tmpl     // 待生成的文件(文件名、文件内容:模板解析;文件名:移除模板文件后缀名)
    ├── dao                                 // 待创建的目录
    │   └── mysql                           // 待创建的目录
    │       └── {{.ResourceNameSC}}.go.tmpl // 待生成的文件(已存在,则跳过)
    └── tmpl_vars.txt.tmpl                  // 待生成的文件(文件内容:模板解析;文件名:移除模板文件后缀名)

示例文件路径:test/data/render-tmpldir/template

配置文件示例

文件位置:configs/render-tmpldir.json

{
    "tmpl_file_ext": ".tmpl",               // 模板文件后缀名
    "tmpl_vars": [
        {
            "name": "ResourceNameSC",                                       // 模板变量名
            "value_input": {                                                // 模板变量值输入器配置
                "type": "text",                                             // 输入器类型:提示文本输入
                "text": {                                                   // 输入器配置
                    "label": "资源标识名(蛇形命名,如:api_token)",            // - 提示文案
                    "value_regexp_pattern": "^[a-z]{2,}(_[a-z]{2,}){0,8}$"  // - 输入值的正则表达式模式
                }
            }
        },
        {
            "name": "DatabaseDriver",
            "value_input": {
                "type": "select",           // 输入器类型:提示文本选择
                "select": {                 // 输入器配置
                    "label": "数据库驱动",    // - 提示文案
                    "values": [             // - 可选值数组
                        "MySQL",
                        "ClickHouse",
                        "PostgreSQL"
                    ]
                }
            }
        },
        {
            "name": "DatabaseDriverLC",
            "value_input": {
                "type": "template",                                 // 输入器类型:模板解析
                "template": {                                       // 输入器配置
                    "text": "{{ .DatabaseDriver | ToLowerCase }}"   // - 模板文本(仅支持 go template 语法,用于将之前输入的模板变量值再处理)
                }
            }
        },
        {
            "name": "ResourceNameUCC",
            "value_input": {
                "type": "template",
                "template": {
                    "text": "{{ .ResourceNameSC | ToUpperCamelCase }}"
                }
            }
        },
        {
            "name": "ResourceNameConst",
            "value": "abc"                  // 无输入器,固定值
        }
    ]
}