文件

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 -hkura --help 都是 kura help 的 alias。

啟動 daemon

kura

Launcher 會:

  1. 開啟 ~/.config/kuradb/daemon.log 接收 daemon 輸出。
  2. 以內部 --daemon argument 在新 session 啟動相同 executable。
  3. 輪詢 ~/.config/kuradb/endpoint 最多 10 秒。
  4. 就緒時印出 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;它會同時回傳 registeredloaded 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
EN