Documentação

Linha de comando cee

Gerar, imprimir, reimprimir e corrigir a partir de um terminal ou de um script, com o comando cee.

O cee é a linha de comando do ceelab. Ele é chamado a partir de um terminal (bash, zsh, PowerShell, cmd) e se integra às automações. Ele usa o mesmo motor do aplicativo, no mesmo banco de dados e com as mesmas configurações: mesmas verificações, mesmos contadores, mesmos arquivos, mesmo histórico.

ceelabaplicativo para desktopceelinha de comandoMotorverificações,contadores,renderizaçãoPasta de dadosceelab.db · config.jsonSaídasimpressora, pasta de saída
O aplicativo e o comando cee passam pelo mesmo motor, com o mesmo banco de dados e as mesmas configurações.
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 é o nome curto de um tipo de documento: a sua chave, visível na aba Tipos de documento (Configurações avançadas › Chave do tipo). Os modelos são criados no aplicativo; o comando serve para usá-los, nunca para criá-los nem alterá-los.

Instalação e chamada

O cee vem com o ceelab, no mesmo instalador. Ele funciona assim que o ceelab tiver sido aberto uma primeira vez no computador. Configure a impressora de etiquetas e a pasta de saída no aplicativo antes de imprimir.

Sistema Local Chamada
Linux (.deb) /usr/bin/cee cee … diretamente.
Windows cee.exe, na pasta de instalação, ao lado do ceelab.exe O instalador adiciona essa pasta ao PATH do usuário; abra um novo terminal depois da instalação.
macOS /Applications/ceelab.app/Contents/MacOS/cee Caminho completo, ou veja abaixo.

No macOS, o aplicativo é instalado arrastando e soltando, sem adicionar nada ao PATH. Para digitar cee no Terminal, escolha uma das opções:

# link simbólico em uma pasta do PATH (permissões de administrador)
sudo ln -s /Applications/ceelab.app/Contents/MacOS/cee /usr/local/bin/cee
# ou: pasta do aplicativo no fim do PATH (~/.zprofile)
export PATH="$PATH:/Applications/ceelab.app/Contents/MacOS"
Ainda não testadoEssas duas formas ainda não foram testadas em um Mac, nem o comportamento do Gatekeeper para o cee iniciado a partir do Terminal.

Comandos

Os verbos são em inglês e iguais em todos os idiomas; as mensagens seguem o idioma do aplicativo. cee COMANDO --help mostra a ajuda de um comando; cee print TIPO --help acrescenta as variáveis do tipo.

Comando Efeito
cee types Lista os tipos de documento: nome curto, nome e variáveis a preencher. Um tipo sem modelo produzido aparece como “não pode ser gerado”.
cee describe TIPO Detalha um tipo: idioma, saídas produzidas, variáveis a preencher (opção, natureza, obrigatório, valor padrão, valores possíveis) e, em seguida, os valores calculados ou fixos.
cee preview TIPO --out ARQUIVO.pdf|.png Grava uma pré-visualização com os valores informados (PNG a 200 pontos por polegada). Nada é reservado, impresso nem adicionado ao histórico. --template escolhe o modelo.
cee print TIPO [variáveis] [--copies N] [--date AAAA-MM-DD] [--dry-run] Gera e imprime como a janela Geração, para N cópias (1 por padrão, no máximo 10 000).
cee history [--limit N] [--since AAAA-MM-DD] Últimos documentos gerados (20 por padrão), do mais recente ao mais antigo.
cee reprint ID|--last [--dry-run] Reimprime de forma idêntica um documento do histórico, sem consumir número.
cee edit ID|--last VARIÁVEIS [--dry-run] Corrige um documento e o reimprime: mesmos números, layout original, valores corrigidos. A correção é um novo documento, ligado ao original.

--dry-run faz todas as verificações de uma impressão real e mostra o que seria produzido, sem reservar, gravar nem imprimir nada.

cee edit --last sem valor não corrige nada: ele mostra as variáveis do último documento e os seus valores (código 2). Uma correção é recusada (código 4) quando alteraria um valor do qual depende uma fórmula, ou que um texto de modelo usa em um cálculo ({upper(product)}): nesse caso, gere um novo documento.

Variáveis do tipo

As opções -- dependem do tipo: cada variável preenchida (texto, número, data, lista de opções ou Sim/Não, pedida ao operador) é informada pelo seu nome ou com --set:

cee print product_label --product "Vis inox" --reference VX-0620
cee print product_label --set product="Vis inox" --set reference=VX-0620
  • Um número pode ser escrito com vírgula (12,5); uma data, AAAA-MM-DD ou DD/MM/AAAA; uma lista de opções espera o texto exato de uma opção; um Sim/Não é escrito true ou false.
  • Uma variável não informada recebe o seu valor padrão. Um número, um composto ou uma fórmula é calculado pelo ceelab: informá-lo é recusado.
  • Um valor com espaços vai entre aspas. A forma --set "name=Jane Doe" funciona no bash, zsh, PowerShell e cmd.
Opção Comandos Efeito
--json todos resposta JSON na saída padrão
--data-dir PASTA todos outra pasta de dados (tarefa agendada em outra conta, por exemplo)
--copies N print número de cópias (1 a 10 000)
--date AAAA-MM-DD print, preview data anterior do documento (nunca no futuro)
--dry-run print, reprint, edit simulação, nada gravado nem impresso
--last reprint, edit documento mais recente

Proteções

Todas são verificadas antes de reservar qualquer número:

  • Valores: obrigatórios, números, datas, opções, Sim/Não, data que não esteja no futuro.
  • Typst: o motor de renderização precisa iniciar.
  • Impressora de etiquetas configurada no ceelab, para um tipo que produz uma etiqueta.
  • Pasta de saída completa (/srv/etiquettes, D:\Etiquettes…) para um comando que grava um PDF: a configuração inicial, ., é relativa e é recusada.
  • Verificação da primeira etiqueta: enquanto ela não tiver sido feita no aplicativo, o comando imprime só uma etiqueta por vez.

Depois da reserva, uma saída com falha fica registrada no histórico com o seu número, como no aplicativo; cee reprint ID refaz o documento.

O comando e o aplicativo podem trabalhar ao mesmo tempo no mesmo banco de dados: cada gravação espera a outra por até 5 segundos. Depois de uma atualização do ceelab, abra o aplicativo uma vez antes de usar o cee: é ele que atualiza o banco de dados.

Resposta JSON

Com --json, o comando grava um único objeto JSON na saída padrão, inclusive em caso de erro. Campos comuns: schema (versão do formato), command, ok, code e, em caso de falha, error (kind, message, details). O JSON é em ASCII, legível qualquer que seja a página de código do console.

# bash: valores salvos do documento (inclusive os números)
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 }

Códigos de saída

Estáveis de uma versão para outra; o nome entre parênteses é o error.kind no JSON.

Código Significado
0 sucesso (ok)
1 erro inesperado (internal)
2 linha de comando incorreta, ou nada a corrigir (usage)
3 não encontrado: tipo, documento, modelo (not_found)
4 dado recusado (invalid); fórmula recusada (expression)
5 reservado, ainda não usado
6 ceelab não está pronto neste computador: abra-o uma vez; ou pasta de saída relativa (not_configured)
7 nenhuma impressora de etiquetas configurada (printer)
8 geração incompleta: pelo menos uma saída com falha, registrada e reimprimível (partial)
9 banco de dados ocupado por mais de 5 s, ou restauração em andamento: tente de novo (busy)
10 Typst não encontrado ou inutilizável (typst)
11 recusado por uma proteção: verificação da primeira etiqueta ainda não feita (guard)

Registro de eventos

Cada chamada acrescenta uma linha ao registro de eventos do aplicativo (aba Logs), com o prefixo [cee]: comando, tipo ou documento visado, nomes das variáveis informadas (nunca os seus valores), código de saída e duração.