# Trabalhar no teu computador com a CLI feitora

Usa o teu editor e o git para programar as secções da loja; a CLI envia ao gravar, compila, mostra a pré-visualização e publica.

A **CLI `feitora`** liga uma pasta do teu computador ao código do site da loja. Programas no teu editor preferido (VS Code, WebStorm…), guardas no git, e a CLI trata de enviar os ficheiros, compilar e publicar. É o mesmo código que vês em **Conteúdo → Código** no painel.

## Antes de começar

- Precisas do **Node 22** ou mais recente.
- Precisas de um **token** da loja: em **Definições → Apps e API** carrega em **Criar app**, dá-lhe um nome (ex.: "CLI da Ana") e marca **Código do site** com **Escrever**. Copia o token (começa por `fta_`) — só aparece uma vez.

> **Aviso — Trata o token como uma palavra-passe**
> Com ele é possível alterar o JavaScript que corre no site. Não o ponhas no git nem em ficheiros do projeto, e revoga a app quando deixar de ser precisa.

## Começar um projeto

1. Cria o projeto a partir do exemplo: `feitora init minha-loja` e entra na pasta (`cd minha-loja`).
2. Liga-te à loja: `feitora login`. A CLI pede o endereço da loja e o token, confirma que funcionam e guarda-os em `~/.feitora`.
3. Se a loja já tem código, traz os ficheiros com `feitora pull` (numa pasta vazia).

## O dia a dia

1. Corre `feitora dev`. A CLI envia o que mudou, compila e mostra o link de **pré-visualização**.
2. Edita e grava. A cada gravação a CLI envia o ficheiro, volta a compilar e mostra o resultado. Os erros aparecem com o ficheiro, a linha, a coluna e um excerto do código.
3. Abre o link de pré-visualização no browser para ver o site com o rascunho.
4. Quando estiver pronto: `feitora publish` (pede confirmação).

| Comando | O que faz |
|---|---|
| `feitora push` | envia os ficheiros alterados (tudo ou nada) e compila |
| `feitora pull` | traz os ficheiros da loja sem estragar alterações tuas por enviar |
| `feitora builds` | histórico de builds (publicado, rascunho, arquivado, com erros) |
| `feitora publish --build <id>` | volta a pôr no site um build anterior |
| `feitora status` | o que falta enviar e o que está publicado |

## Conflitos com o painel

Se alguém alterar um ficheiro no painel depois da tua última sincronização, o `push` não o sobrepõe: avisa e pede-te para fazer `feitora pull` primeiro (ou `--force`, se tiveres a certeza). Apagar um ficheiro aqui só o apaga na loja com `feitora push --delete` (no `feitora dev` é automático).

## Integração contínua

Em CI define `FEITORA_STORE` e `FEITORA_TOKEN` e corre `feitora push && feitora publish --yes`. O `push` termina com erro se o build falhar, por isso nada é publicado com erros.
