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.
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"
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 dateAAAA-MM-JJouJJ/MM/AAAA; une liste de choix attend le texte exact d’une option ; un Oui/Non s’écrittrueoufalse. - 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.