
# CLI

Rudel registra seus comandos em `wp rudel`. WP-CLI rejeita com `unknown --<name> parameter` uma opção que não esteja listada aqui para um comando.

Você pode renomear o comando raiz para uso integrado definindo `RUDEL_CLI_COMMAND` em `wp-config.php` antes de carregar o plugin.

```php
define( 'RUDEL_CLI_COMMAND', 'sandbox' );
```

Isso altera `wp rudel create` para `wp sandbox create`. O comportamento do comando não muda.

Por padrão, os comandos são executados no host. Para executar qualquer outro comando WP-CLI dentro de uma sandbox, defina `RUDEL_ENVIRONMENT`:

```bash
RUDEL_ENVIRONMENT=alpha-3be7 wp option get blogname
```

## create

```bash
wp rudel create [--name=<name>] [--theme=<slug>] [--clone-from=<id>] [--owner=<owner>] [--labels=<labels>] [--purpose=<purpose>] [--protected] [--ttl-days=<days>] [--expires-at=<timestamp>] [--git=<remote>] [--type=<theme|plugin>] [--template=<label>]
```

Cria uma sandbox e exibe seu ID.

| Opção | Significado |
|--------|---------|
| `--name` | Nome legível por humanos. O ID é o nome mais quatro caracteres hexadecimais. Por padrão, usa o nome do repositório com `--git`; caso contrário, `sandbox`. |
| `--theme` | Tema a ser copiado para a sandbox. Precisa estar instalado no host. Por padrão, usa o tema ativo do host ou, com `--clone-from`, o tema da sandbox de origem. |
| `--clone-from` | Clona as tabelas e o tema de uma sandbox existente em vez do host. |
| `--owner`, `--labels`, `--purpose` | Metadados. Os rótulos são separados por vírgulas. |
| `--protected` | Exclui a sandbox da limpeza. |
| `--ttl-days` | Expiração relativa ao momento da criação. |
| `--expires-at` | Data e hora explícitas de expiração. |
| `--git` | Clona um repositório remoto para o diretório da sandbox. Consulte [Git](https://rudel.inline0.dev/pt/docs/features/git). |
| `--type` | Local do checkout de `--git`: `theme` (padrão) ou `plugin`. |
| `--template` | Rótulo armazenado no registro; padrão `blank`. Não carrega um modelo salvo. |

`--clone-db`, `--clone-themes`, `--clone-plugins`, `--clone-uploads`, `--clone-all`, `--shared-plugins` e `--shared-uploads` estão obsoletos. Eles alteram apenas as mensagens de progresso: cada sandbox clona as tabelas, copia um tema e compartilha plugins e uploads.

O comando termina com uma instrução para `cd` no diretório da sandbox e executar `wp post list`. Isso é executado no host, pois o `wp-cli.yml` no diretório da sandbox aponta para o URL do host. Use `RUDEL_ENVIRONMENT` em vez disso.

## list

```bash
wp rudel list [--format=<table|json|csv|yaml|count>]
```

Lista as sandboxes com ID, nome, responsável, proteção, expiração, status, rótulo do modelo, horário de criação e tamanho do diretório.

## info

```bash
wp rudel info <id> [--format=<table|json|yaml>]
```

Exibe um registro de sandbox, incluindo o prefixo da tabela, tema, rótulos, metadados de clonagem, URL e caminho do conteúdo.

## update

```bash
wp rudel update <id> [--owner=<owner>] [--labels=<labels>] [--purpose=<purpose>] [--protected] [--unprotected] [--ttl-days=<days>] [--expires-at=<timestamp>] [--clear-expiry]
```

Atualiza os metadados. `--ttl-days` é contado a partir do momento atual. O conteúdo do site da sandbox não é alterado.

## destroy

```bash
wp rudel destroy <id> [--force]
```

Remove as tabelas da sandbox, seu diretório e as árvores de trabalho vinculadas, e exclui seu registro. O comando pede confirmação; `--force` ignora a pergunta. A proteção não impede `destroy`: uma sandbox protegida é destruída como qualquer outra.

## status

```bash
wp rudel status
```

Exibe uma tabela com o estado de inicialização, a sandbox atual, o diretório e a quantidade de sandboxes, os valores de `rudel_config` e se a automação está agendada. Sempre exibe uma tabela e ignora `--format`.

## cleanup

```bash
wp rudel cleanup [--dry-run] [--max-age-days=<days>] [--max-idle-days=<days>] [--merged]
```

Sem `--merged`, remove sandboxes desprotegidas cuja expiração passou, que ultrapassaram o limite de idade ou que ficaram inativas por mais tempo que o limite de inatividade. `--max-age-days` e `--max-idle-days` substituem `rudel_config` nesta execução. Com `--merged`, remove sandboxes cujas ramificações de árvore de trabalho vinculadas do Git foram incorporadas. Sandboxes protegidas são sempre ignoradas. Consulte [Limpeza](https://rudel.inline0.dev/pt/docs/features/cleanup).

## logs

```bash
wp rudel logs <id> [--lines=<lines>] [--follow] [--clear]
```

Exibe as últimas linhas do `debug.log` da sandbox (50 por padrão). `--follow` executa `tail -f`; `--clear` esvazia o arquivo. Consulte [Registro de erros](https://rudel.inline0.dev/pt/docs/features/logging).

## snapshot

```bash
wp rudel snapshot <id> --name=<name>
```

Cria um instantâneo nomeado.

## restore

```bash
wp rudel restore <id> --snapshot=<name> [--force]
```

Restaura um instantâneo. O comando pede confirmação; `--force` ignora a pergunta. Consulte [Instantâneos](https://rudel.inline0.dev/pt/docs/features/snapshots).

## template

```bash
wp rudel template save <id> --name=<name> [--description=<description>]
wp rudel template list [--format=<table|json|csv|yaml|count>]
wp rudel template delete <name> [--force]
```

Salva, lista e exclui cópias de modelos. Nenhum comando cria uma sandbox a partir de um modelo salvo. Consulte [Modelos](https://rudel.inline0.dev/pt/docs/features/templates).

## push

```bash
wp rudel push <id> [--git=<remote>] [--dir=<dir>] [--message=<message>]
```

Confirma e envia um checkout dentro do diretório da sandbox para a ramificação `rudel/<id>`.

| Opção | Significado |
|--------|---------|
| `--git` | Remoto URL. Necessário somente quando nenhum está armazenado; lembrado após o primeiro envio bem-sucedido. |
| `--dir` | Diretório relativo ao diretório da sandbox, por exemplo `themes/my-theme`. Por padrão, usa o diretório de checkout armazenado ou, caso contrário, todo o diretório da sandbox. |
| `--message` | Mensagem do commit; padrão `Update from Rudel sandbox`. |

Consulte [Git](https://rudel.inline0.dev/pt/docs/features/git).
