nkb emit

Wypisuje wartości paczki dla skryptu albo pliku testowego, jako JSON, CSV albo jedną wartość na wiersz.

nkb emit <pack> [--format json|csv|lines] [--escaped|--raw] [--base64]

Co wypisuje?

Wartości, na standardowe wyjście, i nic więcej. Opis tego, co wyszło, i każda uwaga o tym, czego format nie umiał przenieść, idą na standardowe wyjście błędów, więc plik, do którego przekierujesz wyjście, zawiera same wartości. Paczka z błędem nie zostaje wypisana wcale: paczka jest cała albo jej nie ma.

Przykłady

Jedna wartość na wiersz, dla testu, który czyta plik tekstowy:

$ nkb emit magic-values --format lines > magic-values.txt
nkb emit: 12 values, 47 code points, 47 bytes
$ head -4 magic-values.txt
no
null
true
NaN

JSON, format domyślny, niesie każde pole każdej wartości i obie jej postacie, samą wartość i wartość w postaci escapowanej:

$ nkb emit locale-pl
{
  "schema": 1,
  "values": [
    {
      "pack": "locale-pl",
      "ref": "locale-pl/pesel-valid",
      "id": "pesel-valid",
      "name": "PESEL with a valid checksum",
      "value": "99023012343",
      "escaped": "99023012343",

CSV, jeden wiersz na wartość, domyślnie w postaci escapowanej, bo ten katalog zawiera wartości, które niszczą pliki CSV:

$ nkb emit dates-impossible --format csv
nkb emit: 12 values, 111 code points, 111 bytes
pack,ref,id,name,value,breaks,expect,fields,tags,risk,since,source,generated
dates-impossible,dates-impossible/feb-30,feb-30,30 February,30.02.2026,...

O którą postać prosić?

Postać escapowana zapisuje znak, którego nikt nie zobaczy, jako sekwencję ucieczki, tak jak zapisuje go plik paczki, więc recenzent może ją przeczytać, a plik przeżyje edytor. Postać surowa zapisuje samą wartość i to ją test powinien podać aplikacji. --escaped i --raw wybierają jedną z nich, a prośba o obie zostaje odrzucona, zamiast być po cichu rozstrzygnięta. --base64 koduje każdą wartość dla kanału, który uszkodziłby tekst, na przykład zmiennej powłoki albo środowiska, które przepisuje końce wierszy.

lines odrzuca wartość, która zawiera podział wiersza, i nazywa ją, zamiast po cichu rozdzielić ją na dwa wiersze.

Opcje

--format json|csv|lines

Jedno z: json, csv, lines. Co zapisuje każdy z nich, mówią formaty niżej.

--escaped

Wypisuje wartości tak, jak zapisuje je plik paczki

--raw

Wypisuje wartości dosłownie

--base64

Koduje wartości dla kanałów, które psują tekst

-h, --help

Pokazuje tę pomoc i kończy kodem 0

Formaty

json

Obie postacie każdej wartości i każde pole. Domyślny, bo tylko on niesie cały katalog

csv

Jeden wiersz na wartość. Domyślnie w postaci escapowanej, bo ten katalog zawiera wartości, które niszczą pliki CSV

lines

Jedna wartość na wiersz. Wartość z podziałem wiersza odrzuca i nazywa, zamiast po cichu ją rozdzielić

Kody wyjścia

Pomoc tego polecenia nie wymienia własnych kodów wyjścia. Liczby znaczą to samo w każdym poleceniu: Kody wyjścia

Pomoc, tak jak wypisuje ją program

Co wypisuje nkb emit --help (nkb 0.1.0).

nkb emit - print a pack's values for a script or a file

Usage:
  nkb emit <pack> [--format json|csv|lines] [--escaped|--raw] [--base64]

Values go to standard output. The account of what came out, and any
note about what a format could not carry, go to standard error - so a
redirected file holds values and nothing else.

Formats:
  json     Both forms of every value, and every field. The default,
           because it is the only one that carries the whole catalogue
  csv      One row per value. Escaped by default, because this
           catalogue contains values that destroy CSV files
  lines    One value per line. Refuses a value containing a line
           break by name, rather than splitting it silently

Options:
      --escaped  Print values as a pack file stores them
      --raw      Print values literally
      --base64   Encode values, for channels that damage text
  -h, --help     Show this help and exit with 0