Documentation

Ligne de commande cee

Générer, imprimer, réimprimer et corriger depuis un terminal ou un script, avec la commande cee.

cee est la ligne de commande de ceelab. Elle s’appelle depuis un terminal (bash, zsh, PowerShell, cmd) et s’intègre aux automatisations. Elle passe par le même moteur que l’application, sur la même base et la même configuration : mêmes contrôles, mêmes compteurs, mêmes fichiers, même historique.

ceelabapplication de bureauceeligne de commandeMoteurcontrôles,compteurs,renduDossier de donnéesceelab.db · config.jsonSortiesimprimante, dossier de sortie
L'application et la commande cee passent par le même moteur, sur la même base et la même configuration.
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 est le nom court d’un type de document : sa clé, visible dans l’onglet Types de document (Réglages avancés › Clé du type). Les templates se conçoivent dans l’application ; la commande sert à les utiliser, jamais à les créer ni à les modifier.

Installation et appel

cee est livrée avec ceelab, dans le même installeur. Elle fonctionne dès que ceelab a été ouvert une première fois sur le poste. Réglez l’imprimante d’étiquettes et le dossier de sortie dans l’application avant d’imprimer.

Système Emplacement Appel
Linux (.deb) /usr/bin/cee cee … directement.
Windows cee.exe, dans le dossier d’installation, à côté de ceelab.exe L’installeur ajoute ce dossier au PATH de l’utilisateur ; ouvrez un nouveau terminal après l’installation.
macOS /Applications/ceelab.app/Contents/MacOS/cee Chemin complet, ou voir ci-dessous.

Sous macOS, l’application s’installe par glisser-déposer, sans rien ajouter au PATH. Pour taper cee dans le Terminal, au choix :

# lien symbolique dans un dossier du PATH (droits administrateur)
sudo ln -s /Applications/ceelab.app/Contents/MacOS/cee /usr/local/bin/cee
# ou : dossier de l'application à la fin du PATH (~/.zprofile)
export PATH="$PATH:/Applications/ceelab.app/Contents/MacOS"
Pas encore éprouvéCes deux façons n’ont pas encore été essayées sur un Mac, ni le comportement de Gatekeeper pour cee lancé depuis le Terminal.

Commandes

Les verbes sont en anglais et identiques dans toutes les langues ; les messages suivent la langue de l’application. cee COMMANDE --help donne l’aide d’une commande ; cee print TYPE --help y ajoute les variables du type.

Commande Effet
cee types Liste les types de document : nom court, nom et variables à saisir. Un type sans template produit est signalé « non générable ».
cee describe TYPE Détaille un type : langue, sorties produites, variables à saisir (option, nature, obligatoire, valeur par défaut, valeurs possibles), puis les valeurs calculées ou fixes.
cee preview TYPE --out FICHIER.pdf|.png Écrit un aperçu avec les valeurs données (PNG en 200 points par pouce). Rien n’est réservé, imprimé ni ajouté à l’historique. --template choisit le template.
cee print TYPE [variables] [--copies N] [--date AAAA-MM-JJ] [--dry-run] Génère et imprime comme la fenêtre Génération, pour N exemplaires (1 par défaut, 10 000 au plus).
cee history [--limit N] [--since AAAA-MM-JJ] Derniers documents générés (20 par défaut), du plus récent au plus ancien.
cee reprint ID|--last [--dry-run] Réimprime à l’identique un document de l’historique, sans consommer de numéro.
cee edit ID|--last VARIABLES [--dry-run] Corrige un document et le réimprime : mêmes numéros, mise en page d’origine, valeurs corrigées. La correction est un nouveau document, relié à l’original.

--dry-run fait tous les contrôles d’une vraie impression et montre ce qui serait produit, sans rien réserver, écrire ni imprimer.

cee edit --last sans valeur ne corrige rien : il affiche les variables du dernier document et leurs valeurs (code 2). Une correction est refusée (code 4) quand elle changerait une valeur dont dépend une formule, ou qu’un texte de template utilise dans un calcul ({upper(product)}) : générez alors un nouveau document.

Variables du type

Les options -- dépendent du type : chaque variable saisie (texte, nombre, date, liste de choix ou Oui/Non, demandée à l’opérateur) se donne par son nom ou avec --set :

cee print product_label --product "Vis inox" --reference VX-0620
cee print product_label --set product="Vis inox" --set reference=VX-0620
  • Un nombre peut s’écrire avec une virgule (12,5) ; une date AAAA-MM-JJ ou JJ/MM/AAAA ; une liste de choix attend le texte exact d’une option ; un Oui/Non s’écrit true ou false.
  • Une variable non donnée prend sa valeur par défaut. Un numéro, un assemblage ou une formule est calculé par ceelab : le donner est refusé.
  • Une valeur avec des espaces se met entre guillemets. La forme --set "name=Jane Doe" convient à bash, zsh, PowerShell et cmd.
Option Commandes Effet
--json toutes réponse JSON sur la sortie standard
--data-dir DOSSIER toutes autre dossier de données (tâche planifiée sous un autre compte, par exemple)
--copies N print nombre d’exemplaires (1 à 10 000)
--date AAAA-MM-JJ print, preview date antérieure du document (jamais dans le futur)
--dry-run print, reprint, edit simulation, rien d’écrit ni d’imprimé
--last reprint, edit document le plus récent

Garde-fous

Tous sont contrôlés avant de réserver le moindre numéro :

  • Valeurs : obligatoires, nombres, dates, choix, Oui/Non, date pas dans le futur.
  • Typst : le moteur de rendu doit se lancer.
  • Imprimante d’étiquettes réglée dans ceelab, pour un type qui produit une étiquette.
  • Dossier de sortie complet (/srv/etiquettes, D:\Etiquettes…) pour une commande qui écrit un PDF : le réglage de départ, ., est relatif et refusé.
  • Contrôle de la première étiquette : tant qu’il n’a pas été fait dans l’application, la commande n’imprime qu’une étiquette à la fois.

Après la réservation, une sortie en échec est tracée dans l’historique avec son numéro, comme dans l’application ; cee reprint ID refait le document.

La commande et l’application peuvent travailler en même temps sur la même base : chaque écriture attend l’autre jusqu’à 5 secondes. Après une mise à jour de ceelab, ouvrez l’application une fois avant d’utiliser cee : c’est elle qui met la base à jour.

Réponse JSON

Avec --json, la commande écrit un seul objet JSON sur la sortie standard, y compris en cas d’erreur. Champs communs : schema (version du format), command, ok, code et, en cas d’échec, error (kind, message, details). Le JSON est en ASCII, lisible quelle que soit la page de code de la console.

# bash : valeurs enregistrées du document (numéros compris)
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 }

Codes de retour

Stables d’une version à l’autre ; le nom entre parenthèses est error.kind en JSON.

Code Sens
0 succès (ok)
1 erreur inattendue (internal)
2 ligne de commande incorrecte, ou rien à corriger (usage)
3 introuvable : type, document, template (not_found)
4 donnée refusée (invalid) ; formule refusée (expression)
5 réservé, pas encore utilisé
6 ceelab pas prêt sur ce poste : ouvrez-le une fois ; ou dossier de sortie relatif (not_configured)
7 aucune imprimante d’étiquettes réglée (printer)
8 génération incomplète : au moins une sortie en échec, tracée et réimprimable (partial)
9 base occupée au-delà de 5 s, ou restauration en cours : réessayez (busy)
10 Typst introuvable ou inutilisable (typst)
11 refusé par un garde-fou : contrôle de la première étiquette pas encore fait (guard)

Journal

Chaque appel ajoute une ligne au journal de l’application (onglet Logs), préfixée [cee] : commande, type ou document visé, noms des variables données (jamais leurs valeurs), code de retour et durée.