-
Notifications
You must be signed in to change notification settings - Fork 0
hyp cli.md
HypGo CLI (hyp) 是 HypGo 框架專用的命令列工具,可以用於快速建立、管理和運行你的 HypGo 應用程式。
你可以透過 go install 安裝 CLI 工具:
go install github.com/maoxiaoyue/hypgo/cmd/hyp@latest
確保你的 $GOPATH/bin 已加入到系統的 PATH 環境變數中。
建立新的 HypGo 專案。支援多種專案類型:
-
hyp new <name>— 全棧 Web 專案(預設,含前端模板) -
hyp new web <name>— 同上(明確指定 Web 類型) -
hyp new cli <name>— CLI 工具專案(Cobra 命令列架構) -
hyp new desktop <name>— 桌面應用專案(Fyne 原生 GUI)
hyp new myapp
# 或
hyp new web myapp生成 MVC 結構:app/controllers/、app/routers/、app/models/、app/services/、static/、templates/
hyp new cli mytool
生成 CLI 結構:
mytool/
├── app/
│ ├── commands/ ← Cobra 子命令
│ │ └── root.go
│ ├── models/ ← 共用資料結構
│ ├── services/ ← 共用業務邏輯
│ └── config/
│ └── config.yaml
├── main.go
└── go.mod
後續新增子命令:hyp generate command process
hyp new desktop myapp
生成 Desktop 結構:
myapp/
├── app/
│ ├── views/ ← Fyne GUI 視圖
│ │ └── main_view.go
│ ├── models/ ← 共用資料結構
│ ├── services/ ← 共用業務邏輯
│ └── config/
│ └── config.yaml
├── main.go ← Fyne app + window
└── go.mod
後續新增視圖:hyp generate view settings
注意:Fyne 需要 C 編譯器(gcc)。Windows 可安裝 MSYS2 或 TDM-GCC。
建立一個僅有 API 結構的專案,不包含處理靜態檔案與樣板的設定。
-
範例:
hyp api myapi
啟動 HypGo 應用程式。在開發模式下這可能會提供 Hot Reload 的功能(視設定與環境而定)。
-
範例:
hyp run
執行應用程式的熱重啟(Hot Restart),以達成零停機部署。此指令在 Unix 系統上使用 SIGUSR2 訊號實作,目前 不支援 Windows 系統。
-
範例:
hyp restart
根據 config.yaml 內的設定檔,為當前 HypGo 專案建立 Docker Image。
-
範例:
hyp docker
自動生成遵循 HypGo 慣例的程式碼。支援的 [type]:
| 類型 | 說明 | 產出檔案 |
|---|---|---|
controller |
Handler + Schema 路由 + Middleware |
app/controllers/ + app/routers/
|
model |
Bun ORM Model + Req/Resp struct | app/models/ |
service |
業務邏輯 + Error Catalog | app/services/ |
command |
CLI 子命令(Cobra) | app/commands/ |
view |
Desktop GUI 視圖(Fyne) | app/views/ |
-
Web 專案範例:
-
hyp generate controller user— 生成 controller + router(含 Schema Input/Output) -
hyp generate model order— 生成 Model + CreateOrderReq + OrderResp + OrderListResp -
hyp generate service payment— 生成 Service + Error Catalog
-
-
CLI 專案範例:
-
hyp generate command process— 生成 Cobra 子命令 -
hyp generate command export— 生成另一個子命令
-
-
Desktop 專案範例:
-
hyp generate view settings— 生成 Fyne GUI 設定畫面 -
hyp generate view dashboard— 生成 Fyne GUI 儀表板
-
生成專案 manifest(YAML/JSON),描述路由、設定、schema metadata,供 AI 協作使用。
-
範例:
-
hyp context— YAML 到 stdout -
hyp context -f json— JSON 格式 -
hyp context -o .hyp/manifest.yaml— 儲存到檔案
-
資料庫 migration 工具,掃描 Go Model struct 比對快照,自動產生 SQL migration。
-
子命令:
-
hyp migrate diff— 比對 models 與快照,產生 up/down SQL -
hyp migrate diff --dialect mysql— 使用 MySQL 方言 -
hyp migrate snapshot— 儲存當前 schema 快照
-
Annotation Protocol 檢查器。掃描 Go 檔案中所有 exported 區塊是否有標準註解,並提供建議。
-
範例:
-
hyp chkcomment controllers/user.go— 檢查並報告 -
hyp chkcomment --fix controllers/user.go— 自動加入建議註解(含 .bak 備份)
-
Change Impact Analysis。分析修改某個 Go 檔案會影響哪些套件、路由和測試。
-
範例:
hyp impact pkg/errors/catalog.go - 輸出包含:直接依賴者、受影響測試、風險等級(LOW/MEDIUM/HIGH)
自動生成跨 AI 工具的配置檔(AGENTS.md、GEMINI.md、Copilot、Cursor、Windsurf),讓所有 AI 編碼工具都能理解 HypGo 慣例。
-
範例:
-
hyp ai-rules— 生成所有配置檔 -
hyp ai-rules --only agents,gemini— 只生成特定工具 -
hyp ai-rules --dry-run— 預覽不寫入 -
hyp ai-rules --dir ./myproject— 指定專案根目錄
-
- 已存在且無自動生成標記的檔案不會被覆蓋
- 詳細文檔:wiki/airules.md
檢查當前運行中的 HypGo 應用程式之健康狀態。
-
範例:
hyp health
列出所有可用的 HypGo 擴充套件或插件(Plugins),例如 elasticsearch, kafka, cassandra, rabbitmq。
-
範例:
hyp list
輸入以下指令以確認您安裝的 CLI 版本:
hyp --version
輸出將顯示
HypGo CLI [版本號]
設計文件
套件
- config — 設定
- context — 請求上下文
- router — 路由器
- server — 伺服器
- middleware — 中介層
- websocket — WebSocket
- hidb — 資料庫 ORM
- hidb/cassandra — Cassandra
- logger — 日誌
- json — JSON 處理
- grpc — gRPC
AI 協作工具鏈
- schema — Schema-first 路由
- manifest — 專案 Manifest
- contract — Contract Testing
- errors — Typed Error Catalog
- migrate — Migration Diff
- scaffold — 智慧 Scaffold
- airules — AI Rules
CLI 命令
- hyp 總覽
- hyp new
- hyp api
- hyp run
- hyp restart
- hyp generate
- hyp migrate
- hyp context
- hyp ai-rules
- hyp chkcomment
- hyp impact
- hyp docker
- hyp health
- hyp version
- hyp difflog
Design Docs
Packages
- config — Configuration
- context — Request Context
- router — Router
- server — Server
- middleware — Middleware
- websocket — WebSocket
- hidb — Database ORM
- hidb/cassandra - Cassandra 5.0
- logger — Logger
- json — JSON
- grpc — gRPC
AI Collaboration Toolchain
- schema — Schema-first Routing
- manifest — Project Manifest
- contract — Contract Testing
- errors — Typed Error Catalog
- migrate — Migration Diff
- scaffold — Smart Scaffold
- airules — AI Rules
CLI Commands