Temas e CLI › CLI

Os comandos do CLI

Os comandos são denaryx tema <verbo>, com os verbos em inglês que todo desenvolvedor conhece; theme vale como tema. denaryx <comando> --ajuda mostra as opções de cada um. A instalação, o projeto e a sincronização estão em O CLI de temas.

Opções gerais

Valem em todos os comandos.

OpçãoO que faz
-a, --ambiente <nome>Usa a loja, o tema e a pasta de um ambiente do denaryx.json.
--loja <subdomínio>A loja (sem ela, a do projeto ou a padrão do login).
--tema <id ou nome>O tema (sem ele, o do projeto). Aceita o id ou o nome do tema na loja.
--jsonO resultado em JSON, na saída padrão.
--detalhesCada chamada à API, com o status, o tempo e o Denaryx-Request-Id.
--sem-corSem cores.
-h, --ajuda, --helpA ajuda do comando.
-v, --versionA versão do CLI (também denaryx version).

A conta

denaryx login

Entra numa loja pela sua conta: mostra um código e abre o painel (https://denaryx.com/painel/cli), onde você digita o código, confere de onde veio o pedido, escolhe a loja e autoriza. O CLI consulta a cada poucos segundos até a autorização (o código vale 10 minutos), confere o acesso (GET /token e GET /shop) e o guarda no arquivo de credenciais do seu usuário. O acesso vale 90 dias, só nos temas, com o que o seu papel na loja permite (ver Entrar numa loja).

OpçãoO que faz
--nome <aparelho>O nome deste aparelho, que aparece no painel (sem ele, o nome do computador).
--com-tokenEntra com o token de uma integração, perguntado sem aparecer na tela ou lido da entrada padrão.

Com --com-token, o CLI avisa quando o token não tem write_themes. Num projeto com loja no denaryx.json (ou com --loja), o acesso de outra loja é recusado (o da conta, também revogado). Em CI (com a variável CI), o login pela conta é recusado: use o DENARYX_TOKEN.

denaryx logout

Sai da loja (a do projeto, a do --loja ou a padrão); --todas sai de todas. O acesso pela conta é revogado na hora. O token de integração só sai desta máquina e continua valendo até ser revogado no painel.

denaryx whoami

A loja (nome, subdomínio e endereço), quem entrou (a pessoa e o aparelho, ou a integração), os escopos e a validade do acesso, e se o token veio da variável DENARYX_TOKEN.

Os temas

denaryx tema init

denaryx tema init [pasta] cria um tema a partir do Pilar, o tema de referência da plataforma, sem rede: as pastas do tema, o denaryx.json (com a loja do --loja, ou a padrão do login), o .gitignore, o .gitattributes (* text=auto eol=lf) e o LICENCA.txt do Pilar. A pasta que já tem um tema não é sobrescrita.

O Pilar vem dentro do CLI, na versão dele: passa no verificador sem nenhum erro nem aviso, e segue todas as convenções do guia da agência.

denaryx tema list

Os temas da loja: o nome, o id, se é o publicado, se o código é da plataforma ou próprio, os erros, e qual é o do projeto (marcado com *). Embaixo, em Em desenvolvimento, os temas de desenvolvimento (os do denaryx tema dev e os das prévias de pull request do GitHub), com o pull request de cada prévia (o número e o repositório), a data em que vencem e o desta máquina marcado. No --json, eles vêm em development_themes.

denaryx tema pull

Baixa do tema da loja o que mudou desde a última sincronização (ver A sincronização).

OpçãoO que faz
--forcarNos conflitos, a loja vence.

Os temas da plataforma também se baixam (só o código, para leitura).

denaryx tema push

Envia ao tema da loja o que mudou na pasta. Antes, roda o verificador e mostra os erros; depois, mostra a conferência da loja.

OpçãoO que faz
--novo <nome>Cria um tema novo na biblioteca da loja com a pasta inteira (uma chamada, pelo zip) e grava o id no denaryx.json.
--espelharApaga na loja os arquivos que não estão na pasta.
--forcarNos conflitos, e no que mudou só na loja, a pasta vence.
--estritoNão envia se o verificador achar erro.
--simularMostra o que enviaria e apagaria, sem gravar nada.
--versao <nota>Guarda uma versão do código depois do envio, com a nota.
--publicarDepois do envio, confere e publica (como o tema publish).
--nota <texto>A nota da publicação (sem ela, a da versão).
--simPublica sem perguntar (sem terminal, é obrigatório com --publicar).

O código de um tema da plataforma é só para leitura: para trabalhar sobre o Pilar, comece com tema init e push --novo, ou copie o código no painel.

denaryx tema dev

Desenvolve com a loja de verdade: cada pessoa no seu tema de desenvolvimento (temporário, fora da biblioteca, com o conteúdo da loja), um servidor local em http://127.0.0.1:9292 que mostra a loja pela prévia, e a cada arquivo salvo, o envio, os problemas no terminal e a página atualizada (o CSS sem recarregar). Fica rodando até q ou Ctrl+C. O guia completo está em Desenvolver com o tema dev.

OpçãoO que faz
--diretoTrabalha no tema do projeto, sem o tema de desenvolvimento.
--porta <número>A porta do servidor local (padrão: 9292, ou a seguinte livre).
--redeAbre o servidor local para a rede (para testar no celular).
--sem-proxySem o servidor local: só envia e mostra o endereço da prévia.
--nome <nome>O nome do tema de desenvolvimento, quando ele é criado.

denaryx tema check

denaryx tema check [pasta] confere o tema com o verificador de temas, sem rede: o mesmo que a loja roda a cada gravação e que impede a publicação. Antes, confere a estrutura e os limites, como a loja faz ao gravar. Os avisos desligados no denaryx.json não aparecem.

OpçãoO que faz
--falhar-em erro|avisoSai com o código 1 a partir desta gravidade. O padrão é erro.
--formato texto|json|githubgithub escreve as anotações do GitHub Actions: o problema aparece na linha do pull request.
--paginasTambém desenha as páginas na loja, pela prévia, e confere o HTML delas (abaixo). Precisa de login.
sections/banner.liquid
  3:5  erro   O snippet botao não existe em snippets/  unknown_snippet

55 arquivos conferidos. 1 erro.

No --json, cada problema vem como na API Admin: code, file, line, column, end_line, end_column, message e severity.

As páginas, com --paginas. Algumas regras só são exatas no HTML final, com os dados da loja: a imagem sem texto alternativo, o campo sem rótulo, o id repetido, a ordem dos títulos, o peso do HTML e os scripts que travam a página. Com --paginas, o CLI cria uma prévia do tema do projeto (ou do --tema), abre a prévia sem navegador e pede à loja o ensaio das páginas, o mesmo do "Antes de publicar": a página de exemplo de cada template é desenhada com o tema e os dados da loja. Depois, busca o HTML de cada uma pela prévia e passa as regras marcadas com "páginas" no verificador.

As páginas são as do tema na loja: se a pasta tem mudanças que a loja não tem, o CLI avisa (rode denaryx tema push antes). A página que não abre (page_failed) e o Liquid que falha com os dados da loja (render_error) são erros, e o check sai com o código 1; as outras regras das páginas são avisos, que o denaryx.json desliga como os do código.

55 arquivos conferidos. Nenhum problema.

Páginas, pela prévia
  index             /                                 ok  120 ms
    Seções mais lentas: banner 80 ms, vitrine 20 ms
  product           /produtos/camiseta                com problemas  240 ms
    sections/produto.liquid
      3  erro   Liquid error: price is not a number  render_error
    A página
      1:138  aviso  O <img> não tem alt: descreva a imagem, ou use alt="" se ela for só decorativa  img_without_alt
  product.especial  /produtos/camiseta?view=especial  ok  90 ms
  cart              -                                 sem página de exemplo

3 páginas conferidas. 1 erro e 1 aviso.

O problema do HTML não tem arquivo do tema: a linha e a coluna são as do HTML da página. No --json, o resultado ganha pages (cada uma com template, path, status — ok, problems, failed ou no_example —, duration_ms, slowest_sections e problems) e content_problems (o que a loja guardou e o tema não lê mais, que só informa); errors e warnings somam o código e as páginas. No --formato github, o problema do HTML vira uma anotação sem arquivo, com a página no começo da mensagem.

denaryx tema share

Cria um link de prévia para mandar ao cliente, como o "Compartilhar prévia" do painel. O endereço aparece só nesta hora: guarde-o. O link aparece no painel, em Temas, onde se revoga.

OpçãoO que faz
--nome <nome>O nome do link no painel (sem ele, "Prévia de" com a data).
--dias 1|7|30A validade. O padrão é 7.
--congelarCongela o código e o conteúdo de agora: é o que o cliente aprova.

denaryx tema publish

Mostra o "Antes de publicar" (o que está no ar, os avisos do verificador, o conteúdo da loja que o código deixa de ler e os modelos de página que faltam) e publica. Com erro no código, não publica (saída 1); sem o escopo publish_themes, também não (saída 3). Pede confirmação; sem terminal, só com --sim.

OpçãoO que faz
--nota <texto>A nota, que fica nas publicações.
--simPublica sem perguntar.

A vitrine troca em até 60 segundos. Agendar e voltar a uma publicação anterior ficam no painel.

denaryx tema package

Gera o zip do tema, no mesmo formato do envio pelo painel e pela API: só as pastas do tema, com o texto em LF. --saida <arquivo> escolhe o nome (o padrão é o nome da pasta, com .zip).

denaryx tema open

Abre no navegador a prévia do tema (60 minutos, acompanhando o trabalho). --editor abre o editor visual no painel, e --codigo, o editor de arquivos. Sem navegador (no CI), mostra o endereço.

denaryx tema info

O tema: o id, se está publicado, de onde vem o código, quantos arquivos, o tamanho e os problemas guardados.

denaryx tema versions

As versões do código do tema, da mais nova à mais antiga, com o motivo (publicação, salva à mão, zip enviado...) e a nota. A atual vem marcada com *.

denaryx tema delete

Exclui o tema da loja, depois de confirmar (--sim sem perguntar). O publicado, ou o que tem publicação agendada, não sai. Se era o tema do projeto, ele sai do denaryx.json. Com --tema, exclui também um tema de desenvolvimento (o próximo denaryx tema dev cria outro).