{"id":30504158,"url":"https://github.com/go-home-admin/toolset","last_synced_at":"2025-10-28T19:43:51.389Z","repository":{"id":37414658,"uuid":"448882049","full_name":"go-home-admin/toolset","owner":"go-home-admin","description":"go工具集合；语法分析，静态解析；生成orm, 根据数据表生成curd, 生成依赖注入, proto自定义tag, 根据go源码解析生成文档","archived":false,"fork":false,"pushed_at":"2025-10-22T08:27:54.000Z","size":724,"stargazers_count":11,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-10-22T10:22:36.924Z","etag":null,"topics":["gin","orm","toolset"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/go-home-admin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-01-17T12:19:39.000Z","updated_at":"2025-10-22T08:23:33.000Z","dependencies_parsed_at":"2023-02-10T13:50:40.597Z","dependency_job_id":"a735bd68-25e2-4172-b728-865341fbca04","html_url":"https://github.com/go-home-admin/toolset","commit_stats":null,"previous_names":[],"tags_count":74,"template":false,"template_full_name":null,"purl":"pkg:github/go-home-admin/toolset","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/go-home-admin%2Ftoolset","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/go-home-admin%2Ftoolset/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/go-home-admin%2Ftoolset/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/go-home-admin%2Ftoolset/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/go-home-admin","download_url":"https://codeload.github.com/go-home-admin/toolset/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/go-home-admin%2Ftoolset/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281504332,"owners_count":26512864,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-28T02:00:06.022Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gin","orm","toolset"],"created_at":"2025-08-25T14:01:20.764Z","updated_at":"2025-10-28T19:43:51.357Z","avatar_url":"https://github.com/go-home-admin.png","language":"Go","readme":"# toolset 一个go项目工具集合\n\n1. 有 go 环境安装\n````shell\ngo install github.com/go-home-admin/toolset@latest\n````\n\n2. 直接 [下载](https://github.com/go-home-admin/toolset/releases) 二进制文件， 放到任意 path 包含的路径下\n\n# 展示\n![image](https://github.com/go-home-admin/toolset/blob/main/show.gif)\n\n\n## 帮助命令\n````shell\nuser@macOs path $ toolset\nUsage:\n  command [options] [arguments] [has]\nBase Options:\n  -debug                 是否显示明细\n  -root                  获取项目跟路径, 默认当前目录\n  -h                     显示帮助信息\nAvailable commands:\n  help          帮助命令\n  make          执行所有make命令, 默认参数\n  make:bean     生成依赖注入的声明源代码文件, 使用@Bean注解, 和inject引入\n  make:curd     生成curd基础代码, 默认使用交互输入, 便捷调用 \n  make:grpc     根据protoc文件定义, 生成路grpc基础文件\n  make:js       根据swagger生成js请求文件\n  make:mongo    根据proto文件, 生成mongodb的orm源码\n  make:orm      根据配置文件连接数据库, 生成orm源码\n  make:protoc   组装和执行protoc命令\n  make:route    根据protoc文件定义, 生成路由信息和控制器文件\n  make:swagger  生成文档\n````\n\n## 生成ORM\n````yaml\n# ./config/database.yaml\nconnections:\n  connect_name:\n    driver: mysql\n    host: env(\"DB_HOST\", \"127.0.0.1\")\n    port: env(\"DB_PORT\", \"3306\")\n    database: env(\"DB_DATABASE\", \"home-mysql\")\n    username: env(\"DB_USERNAME\", \"root\")\n    password: env(\"DB_PASSWORD\", \"123456\")\n````\n其中`connect_name`为自定义的连接名，`driver`现支持`mysql`、`postgresql`、`redis`\n````shell\nuser@macOs path $ toolset make:orm -config=./config/database.yaml -out=your_path\n````\n使用, 基本上和`php` `laravel` 很类似, 如果不使用整套的`home`代码, 应该在生成目录下编写新的`NewOrmUsers`函数\n````go\norm := NewOrmUsers()\nuser, has := orm.WhereId(1).First()\nusers, count := orm.WhereNickname(\"demo\").Limit(15).Get()\nfmt.Println(user, has, users, count)\n````\n\n\n## 生成依赖注入_\n这里的原始有点像 `wire` 库, 但是不需要额外声明文件和关系, 而是使用通俗约定地生成源码，具体可以查看生成的文件`z_inject_gen.go`\n\n具体使用查看 docs 目录\n\n````go\n// Kernel @Bean\ntype Kernel struct {\n\thttpServer *services.HttpServer `inject:\"\"`\n\tconfig     *services.Config     `inject:\"config, app\"`\n}\n````\n进入目录获取传入 scan=./path; 执行命令\n````shell\nuser@macOs path $ toolset make:bean\n````\n\n## 具体命令提示\n\n````shell\nuser@macOs path $ toolset make:bean -h\nUsage:\n  make:bean\n    -name                = New{name}\n    -scan                = @root\n    -skip                = @root/generate\nArguments:\nOption:\n  -name                  New函数别名, 如果兼容旧的项目可以设置\n  -scan                  扫码目录下的源码; shell(pwd)\n  -skip                  跳过目录\n  -debug                 是否显示明细\n  -root                  获取项目跟路径, 默认当前目录\n  -h                     显示帮助信息\nHas:\n  -f                     强制更新\nDescription:\n   生成依赖注入的声明源代码文件, 使用@Bean注解, 和inject引入\n````\n\n\n# 数据库注释使用 \n1. 使用注释@type(int), 强制设置生成的go struct 属性 类型\n2. 使用注释@index, 强制生成索引赋值函数\n\n\n# 生成文档\n定义方式\n````protobuf\nservice Controller {\n    // 发送通知文档, 不用请求\n    rpc Api(ApiRequest)returns(ApiResponse){\n        option (http.Post) = \"/test\";\n        // 没有权限\n        option (http.Status) = {Code: 401,Response: \"TResponse\"};\n        // test\n        option (http.Status) = {Code: 402,Response: \"TTResponse\"};\n        // test\n        option (http.Status) = {Code: 403,Response: \"TTTResponse\"};\n    }\n}\nmessage TResponse {}\n````\n\n# 生成 js 接口结构文件\n````shell\nuser@macOs toolset % toolset make:js -h  \nUsage:\n  make:js\n    -in                  = @root/web/swagger.json\n    -out                 = @root/resources/src/api/swagger_gen.js\nArguments:\nOption:\n  -in                    swagger.json路径, 可本地可远程\n  -out                   js文件输出路径\n  -tag                   只生成指定tag的请求\n  -debug                 是否显示明细\n  -root                  获取项目跟路径, 默认当前目录  \n  -http_from             指定import的http函数位置\n  -info_tags             指定注释中的tag显示于接口说明\n  -h                     显示帮助信息\nHas:\nDescription:\n   根据swagger生成js请求文件\n````\n\n# 生成 ts 接口结构文件\n比js更完整，每个参数带有注释，同时生成枚举对象\n````shell\nuser@macOs toolset % toolset make:ts -h  \nUsage:\n  make:js\n    -in                  = @root/web/swagger.json\n    -out                 = @root/resources/src/api/swagger_gen.ts\nArguments:\nOption:\n  -in                    swagger.json路径, 可本地可远程\n  -out                   ts文件输出路径\n  -tag                   只生成指定tag的请求\n  -debug                 是否显示明细\n  -root                  获取项目跟路径, 默认当前目录  \n  -http_from             指定import的http函数位置\n  -info_tags             指定注释中的tag显示于接口说明\n  -h                     显示帮助信息\nHas:\nDescription:\n   根据swagger生成ts请求文件\n````","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgo-home-admin%2Ftoolset","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgo-home-admin%2Ftoolset","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgo-home-admin%2Ftoolset/lists"}