refactor: 入口移至 cmd/fun,go install 后命令名为 fun

This commit is contained in:
2026-09-19 12:16:22 +08:00
parent e29767362a
commit 49ca7f098a
20 changed files with 1 additions and 1 deletions
+60
View File
@@ -0,0 +1,60 @@
package main
// fun-cli:fun 框架的配套命令行工具
//
// fun gen [ts|go] 生成 TypeScript / Go 客户端
// fun run 热更新开发循环
// fun docs 拉起 API 文档站(参数表单 + 在线发送测试)
import (
"fmt"
"os"
)
const version = "1.0.0"
const usage = `fun-cli ` + version + ` — fun 框架配套工具
用法:
fun gen [ts|go] [-o 目录] [-p 模块路径] [-from meta.json]
生成客户端代码(fun 核心直接产出,与内置 GenCode 完全一致)。
扫描模块内 BindService/BindServiceForGen 调用,在对应包目录临时
生成辅助测试执行采集,跑完即删;或 -from 直接读元数据 JSON。
fun run [-p 包路径] [-- 程序参数]
热更新:改 .go/go.mod/go.sum 自动重编译重启。先编译成功再切换,
编译失败保留旧进程。Ctrl+C 退出。
fun docs [-addr 地址] [-upstream 后端URL] [-p 包路径] [-no-run] [-from meta.json]
API 文档站:服务/方法树、DTO 参数表单、State 编辑、一键发送;
流式方法实时展示 NDJSON 行。默认自动 go run 拉起后端并反向代理 /cell。
示例:
fun gen ts -o frontend/src/api
fun run -p ./cmd/server
fun docs -upstream http://127.0.0.1:9000 -p .
安装:
go install github.com/cyi-cc/fun-cli@latest
`
func main() {
if len(os.Args) < 2 {
fmt.Print(usage)
os.Exit(2)
}
switch os.Args[1] {
case "gen":
cmdGen(os.Args[2:])
case "run":
cmdRun(os.Args[2:])
case "docs":
cmdDocs(os.Args[2:])
case "-v", "version":
fmt.Println("fun-cli", version)
default:
fmt.Fprintf(os.Stderr, "未知命令: %s\n\n", os.Args[1])
fmt.Print(usage)
os.Exit(2)
}
}