Dokumentation

Befehlszeile cee

Aus einem Terminal oder einem Skript heraus generieren, drucken, erneut drucken und korrigieren, mit dem Befehl cee.

cee ist die Befehlszeile von ceelab. Sie wird aus einem Terminal aufgerufen (bash, zsh, PowerShell, cmd) und lässt sich in Automatisierungen einbinden. Sie nutzt dieselbe Engine wie die Anwendung, auf derselben Datenbank und mit denselben Einstellungen: dieselben Prüfungen, dieselben Zähler, dieselben Dateien, derselbe Verlauf.

ceelabDesktop-AnwendungceeBefehlszeileEnginePrüfungen,Zähler,RendernDatenordnerceelab.db · config.jsonAusgabenDrucker, Ausgabeordner
Die Anwendung und der Befehl cee nutzen dieselbe Engine, dieselbe Datenbank und dieselben Einstellungen.
cee print shipping-label
cee print shipping-label --copies 10
cee print shipping-label --set name="Jane Doe"
cee edit --last --set name="Jane Doe"

shipping-label ist der Kurzname eines Dokumenttyps: sein Schlüssel, sichtbar auf der Registerkarte Dokumenttypen (Erweiterte Einstellungen › Typschlüssel). Vorlagen werden in der Anwendung gestaltet; der Befehl dient dazu, sie zu verwenden, nie dazu, sie zu erstellen oder zu ändern.

Installation und Aufruf

cee wird mit ceelab im selben Installationsprogramm geliefert. Der Befehl funktioniert, sobald ceelab ein erstes Mal auf dem Arbeitsplatz geöffnet wurde. Stellen Sie Etikettendrucker und Ausgabeordner in der Anwendung ein, bevor Sie drucken.

System Speicherort Aufruf
Linux (.deb) /usr/bin/cee cee … direkt.
Windows cee.exe, im Installationsordner, neben ceelab.exe Das Installationsprogramm fügt diesen Ordner zum PATH des Benutzers hinzu; öffnen Sie nach der Installation ein neues Terminal.
macOS /Applications/ceelab.app/Contents/MacOS/cee Vollständiger Pfad, oder siehe unten.

Unter macOS wird die Anwendung per Drag-and-drop installiert, ohne etwas zum PATH hinzuzufügen. Um cee im Terminal eingeben zu können, wahlweise:

# symbolischer Link in einem Ordner des PATH (Administratorrechte)
sudo ln -s /Applications/ceelab.app/Contents/MacOS/cee /usr/local/bin/cee
# oder: Ordner der Anwendung ans Ende des PATH (~/.zprofile)
export PATH="$PATH:/Applications/ceelab.app/Contents/MacOS"
Noch nicht erprobtBeide Wege wurden noch nicht auf einem Mac ausprobiert, ebenso wenig das Verhalten von Gatekeeper für ein aus dem Terminal gestartetes cee.

Befehle

Die Verben sind englisch und in allen Sprachen gleich; die Meldungen folgen der Sprache der Anwendung. cee BEFEHL --help zeigt die Hilfe zu einem Befehl; cee print TYP --help ergänzt sie um die Variablen des Typs.

Befehl Wirkung
cee types Listet die Dokumenttypen auf: Kurzname, Name und einzugebende Variablen. Ein Typ ohne erzeugte Vorlage wird als „nicht generierbar“ gekennzeichnet.
cee describe TYP Zeigt einen Typ im Detail: Sprache, erzeugte Ausgaben, einzugebende Variablen (Option, Art, Pflichtfeld, Standardwert, mögliche Werte), dann die berechneten oder festen Werte.
cee preview TYP --out DATEI.pdf|.png Schreibt eine Vorschau mit den angegebenen Werten (PNG mit 200 Punkten pro Zoll). Nichts wird reserviert, gedruckt oder zum Verlauf hinzugefügt. --template wählt die Vorlage.
cee print TYP [variablen] [--copies N] [--date JJJJ-MM-TT] [--dry-run] Generiert und druckt wie das Fenster Generierung, für N Exemplare (standardmäßig 1, höchstens 10 000).
cee history [--limit N] [--since JJJJ-MM-TT] Zuletzt generierte Dokumente (standardmäßig 20), vom neuesten zum ältesten.
cee reprint ID|--last [--dry-run] Druckt ein Dokument aus dem Verlauf unverändert erneut, ohne eine Nummer zu verbrauchen.
cee edit ID|--last VARIABLEN [--dry-run] Korrigiert ein Dokument und druckt es erneut: dieselben Nummern, ursprüngliches Layout, korrigierte Werte. Die Korrektur ist ein neues Dokument, verknüpft mit dem Original.

--dry-run führt alle Prüfungen eines echten Drucks durch und zeigt, was erzeugt würde, ohne etwas zu reservieren, zu schreiben oder zu drucken.

cee edit --last ohne Wert korrigiert nichts: Es zeigt die Variablen des letzten Dokuments und ihre Werte an (Code 2). Eine Korrektur wird abgelehnt (Code 4), wenn sie einen Wert ändern würde, von dem eine Formel abhängt oder den ein Text einer Vorlage in einer Berechnung verwendet ({upper(product)}): Generieren Sie dann ein neues Dokument.

Variablen des Typs

Die Optionen -- hängen vom Typ ab: Jede eingegebene Variable (Text, Zahl, Datum, Auswahlliste oder Ja/Nein, beim Bediener abgefragt) wird über ihren Namen oder mit --set angegeben:

cee print product_label --product "Vis inox" --reference VX-0620
cee print product_label --set product="Vis inox" --set reference=VX-0620
  • Eine Zahl kann mit Komma geschrieben werden (12,5); ein Datum als JJJJ-MM-TT oder TT/MM/JJJJ; eine Auswahlliste erwartet den exakten Text einer Option; ein Ja/Nein-Wert wird true oder false geschrieben.
  • Eine nicht angegebene Variable erhält ihren Standardwert. Eine Nummer, ein zusammengesetztes Feld oder eine Formel wird von ceelab berechnet: Sie anzugeben wird abgelehnt.
  • Ein Wert mit Leerzeichen kommt in Anführungszeichen. Die Form --set "name=Jane Doe" funktioniert in bash, zsh, PowerShell und cmd.
Option Befehle Wirkung
--json alle JSON-Antwort auf der Standardausgabe
--data-dir ORDNER alle anderer Datenordner (zum Beispiel für eine geplante Aufgabe unter einem anderen Konto)
--copies N print Anzahl der Exemplare (1 bis 10 000)
--date JJJJ-MM-TT print, preview früheres Datum des Dokuments (nie in der Zukunft)
--dry-run print, reprint, edit Simulation, nichts wird geschrieben oder gedruckt
--last reprint, edit neuestes Dokument

Schutzmechanismen

Alle werden geprüft, bevor auch nur eine Nummer reserviert wird:

  • Werte: Pflichtfelder, Zahlen, Datumsangaben, Auswahl, Ja/Nein, Datum nicht in der Zukunft.
  • Typst: Die Rendering-Engine muss sich starten lassen.
  • Etikettendrucker in ceelab eingestellt, für einen Typ, der ein Etikett erzeugt.
  • Ausgabeordner als vollständiger Pfad (/srv/etiquettes, D:\Etiquettes …) für einen Befehl, der ein PDF schreibt: Die Anfangseinstellung . ist relativ und wird abgelehnt.
  • Kontrolle des ersten Etiketts: Solange sie nicht in der Anwendung erfolgt ist, druckt der Befehl nur ein Etikett auf einmal.

Nach der Reservierung wird eine fehlgeschlagene Ausgabe mit ihrer Nummer im Verlauf festgehalten, wie in der Anwendung; cee reprint ID erzeugt das Dokument neu.

Befehl und Anwendung können gleichzeitig auf derselben Datenbank arbeiten: Jeder Schreibvorgang wartet bis zu 5 Sekunden auf den anderen. Öffnen Sie nach einem Update von ceelab die Anwendung einmal, bevor Sie cee verwenden: Sie bringt die Datenbank auf den neuesten Stand.

JSON-Antwort

Mit --json schreibt der Befehl ein einziges JSON-Objekt auf die Standardausgabe, auch im Fehlerfall. Gemeinsame Felder: schema (Version des Formats), command, ok, code und bei einem Fehler error (kind, message, details). Das JSON ist ASCII und unabhängig von der Codepage der Konsole lesbar.

# bash: gespeicherte Werte des Dokuments (einschließlich Nummern)
cee print shipping-label --set "name=Jane Doe" --json | jq '.documents[0].values'
# PowerShell
$r = cee print shipping-label --set "name=Jane Doe" --json | Out-String | ConvertFrom-Json
if ($LASTEXITCODE -ne 0) { throw $r.error.message }

Exit-Codes

Stabil von einer Version zur nächsten; der Name in Klammern ist error.kind im JSON.

Code Bedeutung
0 Erfolg (ok)
1 unerwarteter Fehler (internal)
2 fehlerhafte Befehlszeile oder nichts zu korrigieren (usage)
3 nicht gefunden: Typ, Dokument, Vorlage (not_found)
4 Daten abgelehnt (invalid); Formel abgelehnt (expression)
5 reserviert, noch nicht verwendet
6 ceelab auf diesem Arbeitsplatz nicht bereit: einmal öffnen; oder relativer Ausgabeordner (not_configured)
7 kein Etikettendrucker eingestellt (printer)
8 unvollständige Generierung: mindestens eine Ausgabe fehlgeschlagen, festgehalten und erneut druckbar (partial)
9 Datenbank länger als 5 s belegt oder Wiederherstellung läuft: erneut versuchen (busy)
10 Typst nicht gefunden oder nicht verwendbar (typst)
11 von einem Schutzmechanismus abgelehnt: Kontrolle des ersten Etiketts noch nicht erfolgt (guard)

Protokoll

Jeder Aufruf fügt dem Protokoll der Anwendung (Registerkarte Protokoll) eine Zeile mit dem Präfix [cee] hinzu: Befehl, betroffener Typ oder betroffenes Dokument, Namen der angegebenen Variablen (nie ihre Werte), Exit-Code und Dauer.