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.
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"
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-DDouDD/MM/AAAA; uma lista de opções espera o texto exato de uma opção; um Sim/Não é escritotrueoufalse. - 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.