Operaterski CLI (`colibri`)
← kazalo
Binarna datoteka colibri je operaterski vmesnik ukazne vrstice do demona.
Je tanek odjemalec — pošilja ukaze JSON po vtičnici Unix, razčlenjuje odgovore
in jih izpisuje. Vsak podukaz CLI se preslika v en ukaz demona. Vmesnik CLI
dodaja priročnost (barvni izpis, privzetki, oblikovalci), ne poslovne logike.
→ crates/colibri-client/src/bin/colibri.rs
Odločitve
Ena binarna datoteka, ena vtičnica
Obstaja ena binarna datoteka colibri, ki se poveže na eno vtičnico
(/var/run/colibri/colibri.sock ali COLIBRI_SOCKET). Ni podukazov za
izbiro demona — večgostiteljske operacije gredo skozi most krmilne ravnine.
Operater izrecno usmeri na drug gostitelj (nc ), ne da bi
CLI podpiral več končnih točk.
Zakaj ne več profilov demona: en demon na gostitelja je zadosten. Večkončnih točk bi v CLI vneslo stanje (colibri --host osa status), ki ga most
že rešuje na omrežni plasti.
CLI je generičen odjemalec JSON-RPC
Vsak podukaz zgradi objekt ColibriCommand, pokliče
client.request(command).await in izpiše rezultat. Odjemalec ne ve ničesar o
pomenu kateregakoli ukaza — samo serializira in razčlenjuje.
Oblikovalci izhodov (print_json, print_table, print_key_value) so čiste
funkcije nad serde_json::Value. Če demon doda novo polje, se samodejno
prikaže v izhodu JSON brez spremembe v CLI.
En ukaz na zagon, ne interaktivno
Vsak zagon colibri izvede natanko en ukaz in konča. Brez lupine REPL, brez
več ukazov v eni seji. To ohranja CLI brez stanja in varnega za skriptanje:
colibri status | jq '.data.agents' je enako zanesljiv v cronu kot v
terminalu.
→ crates/colibri-client/src/bin/colibri.rs (main)
Podukazi, specifični za tablo opravil, sledijo istemu vzorcu
Ukazi za opravila (create-task, intake-task, claim-task,
transition-task) sprejemajo argumente CLI, ki se preslikajo v polja ukaza
JSON. Izhod je bodisi celoten objekt opravila (za create-task,
intake-task) bodisi potrditev (claim-task, transition-task). Noben
podukaz ne zahteva več kot ~3 argumentov — opravilna tabla je namenjena
dodeljevanju s strani agenta, ne ročnemu upravljanju.
→ crates/colibri-client/src/bin/colibri.rs
Glej tudi
- task-board — ukazi, ki jih CLI zrcali
- deployment — kako je nameščena binarna datoteka demona