CLI 參考
使用 kura command 管理 registry state、daemon lifecycle 與本機 HTTP port。
Command 摘要
| Command | 語法 | 效果 |
|---|---|---|
| 啟動 | kura |
以分離 daemon 啟動服務並印出 endpoint |
| 新增 | kura add <name> |
註冊資料庫、建立 inbox 與 home directory symlink |
| 列出 | kura list |
印出已註冊資料庫名稱與 UTC 建立時間 |
| 移除 | kura remove <name> |
互動確認後永久刪除資料庫 |
| 編輯 | kura edit <old> <new> |
重新命名目錄、symlink 與 registry entry |
| 停止 | kura stop |
傳送 SIGTERM,五秒後仍未停止則升級為 SIGKILL |
| 設定 port | kura port set <port> |
持久化固定 port 並重新啟動 daemon |
| 清除 port | kura port clear |
清除固定 port,於下次手動啟動生效 |
| 說明 | kura help |
印出 command usage |
kura -h 與 kura --help 都是 kura help 的 alias。
啟動 daemon
kura
Launcher 會:
- 開啟
~/.config/kuradb/daemon.log接收 daemon 輸出。 - 以內部
--daemonargument 在新 session 啟動相同 executable。 - 輪詢
~/.config/kuradb/endpoint最多 10 秒。 - 就緒時印出 endpoint;失敗時回傳錯誤並指示查看
daemon.log。
--daemon 是內部 lifecycle argument,不是一般 user command。
新增資料庫
kura add my_docs
第一個 argument 會作為名稱。連續空白會轉成底線;空白結果會被拒絕。Command 也會拒絕重複 registry entry 或已存在的目標目錄。
成功後會建立:
~/.config/kuradb/my_docs/inbox/
~/Kura_my_docs -> ~/.config/kuradb/my_docs/inbox/
接著在 db.json 新增 entry。執行中的 daemon 不會熱載入新資料庫,因此搜尋前必須重新啟動。
列出資料庫
kura list
每一行包含資料庫名稱與 UTC RFC 3339 建立時間。空 registry 會印出 (no registered db)。
若要區分 registry 與 runtime state,請使用 GET /api/list;它會同時回傳 registered 與 loaded collection。
重新命名資料庫
kura edit my_docs my_archive
Command 會驗證兩個名稱、拒絕已註冊或已存在的 target、重新命名資料庫目錄、替換 home symlink,最後更新 registry。新舊名稱相同時會印出 noop。
Daemon 會保留啟動時建立的 database map,因此 rename operation 前後應停止或重新啟動 daemon。
移除資料庫
kura remove my_archive
移除前會印出 database directory 與 symlink,並要求輸入完全相同的 yes。其他 response 都會中止。確認後會永久移除 database directory;home path 只有在 symlink 時才會刪除,最後刪除 registry entry。
此 operation 會刪除權威 SQLite database。確認前請先備份需要的資料。
設定 port
kura port set 8080
kura port clear
set 接受 1 到 65535 的 integer,寫入 config.json,若 daemon 存活則先停止,再啟動替代程序。clear 會解除固定,但刻意不重新啟動 process。
停止 daemon
kura stop
KuraDB 從 runtime.uid 讀取 PID,確認仍存活後傳送 SIGTERM。它會以 100 ms 間隔輪詢最多五秒;若程序仍未結束,則傳送 SIGKILL。
Makefile 捷徑
在 source checkout 中可使用對應的 development target:
| Target | 範例 | 行為 |
|---|---|---|
build |
make build |
將 ./cmd/app 建置至 bin/kura |
app |
make app |
停止、建置、安裝至 /usr/local/bin/kura,再啟動 |
test |
make test |
執行 go test -v -count=1 ./... |
add |
make add my_docs |
透過 go run 執行 add subcommand |
list |
make list |
透過 go run 執行 list subcommand |
remove |
make remove my_docs |
透過 go run 執行互動式 removal |
edit |
make edit old new |
透過 go run 執行 rename |
port |
make port set 8080 |
透過 go run 執行 port management |
stop |
make stop |
透過 go run 停止 daemon |