$ bikiniv2.0.2Bikini
Malý nástroj a knihovna jazyka C pro dotazy do souborů INI na macOS, Linuxu a Windows. Čtěte, vypisujte, slučujte, nastavujte a mažte hodnoty INI z příkazové řádky, takže vaše shellové skripty už nepotřebují sed ani awk.
# Instalace přes npm (nebo Homebrew, Scoop, balíčky).
$ npm install -g @partoska/bikini# Přečtení jedné hodnoty.
$ bikini server.port app.ini8080# Výpis klíčů sekce.
$ bikini -k server app.inihostport# Změna hodnoty v souboru.
$ bikini -w -s 9090 server.port app.iniProč Bikini?
Malý a bez závislostí
Jeden nástroj a jedna knihovna v C99, které potřebují jen standardní knihovnu C. Sestavíte je pomocí GCC, Clang nebo MSVC a poběží od Raspberry Pi až po počítač s Windows.
Ptejte se na to, co potřebujete
Vyžádejte si celý dokument pomocí ., jednu sekci pomocí SECTION nebo jednu surovou hodnotu pomocí SECTION.KEY. Názvy, které obsahují tečky, dejte do uvozovek.
Seznamy pro shellové cykly
Parametr -k vypíše sekce dokumentu nebo klíče sekce, jeden na řádek, připravené pro cyklus for.
Opakované sekce a klíče
S parametrem --multi se sekce i klíče smějí opakovat, třeba v seznamech argumentů procesů. Každé opakování určíte jeho indexem, například web[0].Arg[1], nebo všechna najednou pomocí [*].
Slučování vrstvených konfigurací
Zadejte více souborů a Bikini je sloučí v daném pořadí. Pozdější hodnoty nahrazují dřívější, takže místní úpravy leží nad sdílenými výchozími hodnotami.
Nastavení a mazání
Klíče nastavíte pomocí parametru -s a klíče nebo sekce smažete pomocí parametru -d. Výsledek vypište, nebo ho pomocí parametru -w zapište zpět do souboru.
Návratové kódy pro skripty
0 nalezeno, 1 nenalezeno, 2 chyba použití nebo vstupu. Chyby jdou na standardní chybový výstup, takže standardní výstup obsahuje jen odpověď.
Platný výstup INI
Sekce a dokumenty se vypisují jako normalizované INI. Pošlete výstup jednoho bikini do dalšího, nebo ho uložte jako nový soubor.
Váš oddělovač
Výstup ve výchozím stavu zapisuje key = value. Pomocí parametru --delimiter zvolíte jiný oddělovač, například = pro key=value, aby soubor zůstal ve stylu programu, který ho čte.
Připraveno pro AI agenty
Bikini obsahuje skill pro AI agenty. Nainstalujete ho jedním příkazem a AI agenti pro programování, jako jsou Claude Code a Codex, pak umí číst a upravovat vaše soubory INI přesnými příkazy.
$ npx skills add partoska/bikiniJeden nástroj, jedna knihovna
Příkaz bikini je tenká vrstva nad knihovnou libbikini. Příkaz použijte ve shellových skriptech a rourách, nebo knihovnu přilinkujte do vlastního programu v C.
Nástroj příkazové řádky
Čte soubory nebo standardní vstup, vypíše přesně to, co dotaz vybere, a upravuje klíče a sekce. Je určený pro shellové skripty, Makefiles a CI úlohy.
$ bikini server.port app.iniKnihovna C
Čte a zapisuje běžný dialekt INI a zachovává pořadí sekcí a klíčů ze souboru. Sama nic nevypisuje: chyby ukládá do dokumentu i s číslem řádku.
#include <bikini.h>Rychlý start
Od instalace ke čtení a změně konfiguračního souboru v pěti krocích.
Nainstalujte bikini
Nainstalujte CLI a ověřte verzi. Dáváte přednost Homebrew, Scoop nebo nativnímu balíčku? Podívejte se na možnosti instalace.
$ npm install -g @partoska/bikini$ bikini -VVytvořte konfigurační soubor
Zapište malý soubor INI, na kterém dotazy vyzkoušíte. Poslouží i jakýkoli existující soubor
.ini,.cfgnebo.confse sekcemi.$ printf '[server]\nhost = example.com\nport = 8080\n' > app.iniPřečtěte hodnotu
Vypište jednu surovou hodnotu a pak celou sekci jako text INI.
$ bikini server.port app.ini$ bikini server app.iniVypište názvy
Vypište sekce dokumentu pomocí
., nebo klíče jedné sekce.$ bikini -k . app.ini$ bikini -k server app.iniZměňte hodnotu
Nastavte novou hodnotu, pomocí parametru
-wji zapište zpět do souboru a pak ji přečtěte znovu.$ bikini -w -s 9090 server.port app.ini$ bikini server.port app.ini
Příklady
Vypište celý dokument, jednu sekci nebo jednu hodnotu. Celý název sekce má přednost před rozdělením na tečce, jinak klíč následuje za poslední tečkou. Pokud klíč obsahuje tečku, dejte názvy do uvozovek, a pomocí parametru -i můžete ignorovat velikost písmen.
; Comments take a whole line and start with ; or #.[server]host = example.comport = 8080debug = true [database.primary]host = db.localmax-connections = 100 [logging]handler.file = /var/log/app.loglevel = info$ bikini . app.ini$ bikini server app.ini$ bikini server.port app.ini$ bikini database.primary.max-connections app.ini$ bikini 'logging."handler.file"' app.ini$ cat app.ini | bikini -i SERVER.HOSTDalší možnosti najdete v dokumentaci.
Instalace
Vyberte způsob, který vyhovuje vašemu systému. Každá možnost nainstaluje stejný nástroj bikini.
$ brew install partoska/tap/bikiniPro macOS a Linux na x64 a ARM64.
Příkazy používají nejnovější verzi 2.0.2. Všechny soubory a kontrolní součty SHA256 najdete na stránce vydání.
Přidejte skill pro AI agenty
Nechte AI agenty pro programování, jako jsou Claude Code a Codex, ovládat bikini za vás. Instalátor přidá skill Bikini do adresáře se skilly vašeho agenta. V Claude můžete také nahrát soubor bikini_2.0.2_skill.zip ze stránky vydání jako vlastní skill. Nejdřív nainstalujte samotné bikini.
$ npx skills add partoska/bikiniPřehled
Spusťte bikini [OPTIONS] [QUERY] [FILE...]. Přečte každý FILE v daném pořadí, nebo standardní vstup, pokud žádný soubor nezadáte nebo je soubor -. Vestavěnou nápovědu zobrazíte příkazem bikini -h.
Dotazy
- .
- Celý dokument, normalizovaný (výchozí).
- SECTION
- Jedna sekce jako text INI.
- SECTION.KEY
- Surová hodnota klíče.
- "NAME"
- Název sekce nebo klíče v uvozovkách, který může obsahovat tečky. V uvozovkách se escapují
\"a\\. - NAME[N], [*]
- S
--multi: opakováníNdaného názvu počítané od 0, nebo všechna opakování pomocí[*]. Index potřebuje každý název, napříkladSECTION[N].KEY[M].
Návratové kódy
- 0
- Nalezeno, nebo se úprava povedla.
- 1
- Nenalezeno, včetně mazání něčeho, co neexistuje, nebo nastavení neexistující hodnoty s
--multi. - 2
- Chyba použití nebo vstupu, včetně syntaktických chyb INI s číslem řádku na standardním chybovém výstupu.
Parametry
- -k, --keys
- Vypíše sekce dokumentu, nebo klíče sekce
SECTION. - -s, --set VALUE
- Nastaví
SECTION.KEYna zadanou hodnotu a vypíše dokument. S--multijen nahradí existující hodnotu. - --add VALUE
- S
--multi: přidá hodnotu za poslední hodnotuSECTION[N].KEY, nebo založí novou sekci, pokud jeNo jedna za posledním. - -d, --delete
- Smaže
SECTIONneboSECTION.KEYa vypíše dokument. S--multismaže[*]všechna opakování. - -w, --write
- Zapíše úpravu zpět do
FILEmísto jejího vypsání. Vyžaduje právě jeden soubor. - -i, --ignore-case
- Porovnává sekce a klíče bez ohledu na velikost písmen (ASCII).
- --multi
- Povolí opakované sekce a klíče a spojí více souborů, jako by šlo o jeden.
- --delimiter TEXT
- Zapíše zadaný text mezi klíč a hodnotu:
=nebo:s volitelnými mezerami. - -h, --help
- Zobrazí nápovědu.
- -V, --version
- Zobrazí verzi.
Knihovna
- bkInit, bkDestroy
- Vytvoří a uvolní dokument. Příznak
BK_FICASEzapne porovnávání názvů bez ohledu na velikost písmen aBK_FMULTIpovolí opakování. - bkLoad, bkSave
- Načte dokument ze souboru, nebo ho do souboru uloží.
- bkRead, bkWrite
- Načte nebo zapíše text přes vaše vlastní callbacky: standardní vstup, socket nebo paměť.
- bkParse
- Zpracuje text INI z řetězce.
- bkGet, bkSet
- Přečte nebo nastaví hodnotu klíče. Nastavení přidá chybějící sekci i klíč.
- bkRemove
- Smaže klíč. Funkce
bkSectionRemovesmaže celou sekci. - bkSectionAt
- Prochází sekce v pořadí dokumentu.
bkSectionFindnajde sekci podle názvu. - bkKeyAt, bkValueAt
- Prochází klíče a hodnoty sekce v pořadí dokumentu.
- bkGetNth, bkAdd
- S
BK_FMULTIpřečte opakování podle indexu nebo přidá další hodnotu. Takový index berou všechny funkce končící naNth. - bkSetDelimiter
- Zvolí, co se při zápisu dokumentu vloží mezi klíč a hodnotu.
- bkError
- Vrátí poslední chybu se stavem, číslem řádku a zprávou.
Celé API najdete v souboru bikini.h. Vložte bikini.h a linkujte pomocí pkg-config --cflags --libs bikini.
Použití
Skripty a provoz
- →Čtěte nastavení ze souborů INI ve shellových skriptech, Makefiles a CI úlohách bez
sedneboawk. - →Položte místní úpravy na sdílené výchozí hodnoty a vypište sloučený výsledek.
- →Aktualizujte jeden klíč v konfiguračním souboru během nasazení nebo přípravy serveru.
Vývoj
- →Přidejte konfiguraci INI do programu v C nebo C++ s jednou malou knihovnou bez závislostí.
- →Čtěte konfiguraci z paměti, socketu nebo standardního vstupu přes callbacky pro streamy.
- →Nechte AI asistenta pro programování číst a měnit konfigurační soubory přesnými příkazy místo úprav textu.
Technické specifikace
Čtěte konfiguraci, ne regulární výrazy.
Nainstalujte Bikini jedním příkazem a svou první hodnotu INI přečtete během pár sekund.
Prohlédněte si zdrojový kód na GitHubu, stáhněte balíček z npm, přečtěte si dokumentaci nebo přidejte skill pro AI agenty.