
# CLI

Rudel registra i propri comandi in `wp rudel`. WP-CLI rifiuta con `unknown --<name> parameter` le opzioni che un comando non elenca qui.

Per rinominare il comando radice quando lo incorporate, definite `RUDEL_CLI_COMMAND` in `wp-config.php` prima del caricamento del plugin.

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

Così `wp rudel create` diventa `wp sandbox create`. Il comportamento del comando non cambia.

Per impostazione predefinita, i comandi vengono eseguiti sull'host. Per eseguire un altro comando WP-CLI all'interno di una sandbox, impostate `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>]
```

Crea una sandbox e ne stampa l'ID.

| Opzione | Significato |
|--------|---------|
| `--name` | Nome leggibile. L'ID è composto dal nome seguito da quattro caratteri esadecimali. Per impostazione predefinita usa il nome del repository con `--git`, altrimenti `sandbox`. |
| `--theme` | Tema da copiare nella sandbox. Deve essere installato sull'host. Per impostazione predefinita usa il tema attivo dell'host oppure, con `--clone-from`, quello della sandbox sorgente. |
| `--clone-from` | Clona le tabelle e il tema da una sandbox esistente invece che dall'host. |
| `--owner`, `--labels`, `--purpose` | Metadati. Le etichette sono separate da virgole. |
| `--protected` | Esclude la sandbox dalla pulizia. |
| `--ttl-days` | Scadenza calcolata a partire dall'ora di creazione. |
| `--expires-at` | Data e ora di scadenza esplicite. |
| `--git` | Clona un repository remoto nella directory della sandbox. Vedi [Git](https://rudel.inline0.dev/it/docs/features/git). |
| `--type` | Percorso del checkout di `--git`: `theme` (predefinito) oppure `plugin`. |
| `--template` | Etichetta memorizzata nel record, valore predefinito `blank`. Non carica un modello salvato. |

`--clone-db`, `--clone-themes`, `--clone-plugins`, `--clone-uploads`, `--clone-all`, `--shared-plugins` e `--shared-uploads` sono deprecati. Cambiano solo i messaggi di avanzamento: ogni sandbox clona le tabelle, copia un tema e condivide plugin e caricamenti.

Il comando termina suggerendo di `cd` nella directory della sandbox e di eseguire `wp post list`. L'esecuzione avviene sull'host, perché `wp-cli.yml` nella directory della sandbox punta a URL dell'host. Usate invece `RUDEL_ENVIRONMENT`.

## list

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

Elenca le sandbox con ID, nome, proprietario, protezione, scadenza, stato, etichetta del modello, data di creazione e dimensione della directory.

## info

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

Mostra un record della sandbox, incluso il prefisso delle tabelle, il tema, le etichette, i metadati della clonazione, URL e il percorso dei contenuti.

## update

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

Aggiorna i metadati. `--ttl-days` viene calcolato a partire da adesso. Non modifica i contenuti del sito della sandbox.

## destroy

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

Elimina le tabelle della sandbox, rimuove la sua directory e i worktree collegati, quindi elimina il relativo record. Il comando chiede conferma; `--force` ignora la richiesta. La protezione non impedisce `destroy`: una sandbox protetta viene eliminata come tutte le altre.

## status

```bash
wp rudel status
```

Stampa una tabella con lo stato di bootstrap, la sandbox corrente, la directory delle sandbox, il numero di sandbox, i valori di `rudel_config` e l'indicazione se l'automazione è pianificata. Stampa sempre una tabella e ignora `--format`.

## cleanup

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

Senza `--merged`, rimuove le sandbox non protette la cui scadenza è passata o che superano il limite di anzianità o di inattività. `--max-age-days` e `--max-idle-days` sovrascrivono `rudel_config` per questa esecuzione. Con `--merged`, rimuove le sandbox i cui rami dei worktree Git collegati sono stati uniti. Le sandbox protette vengono sempre ignorate. Vedi [Pulizia](https://rudel.inline0.dev/it/docs/features/cleanup).

## logs

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

Stampa le ultime righe del file `debug.log` della sandbox (50 per impostazione predefinita). `--follow` esegue `tail -f`; `--clear` svuota il file. Vedi [Registrazione degli errori](https://rudel.inline0.dev/it/docs/features/logging).

## snapshot

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

Crea uno snapshot con nome.

## restore

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

Ripristina uno snapshot. Il comando chiede conferma; `--force` ignora la richiesta. Vedi [Snapshot](https://rudel.inline0.dev/it/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, elenca ed elimina copie di modelli. Nessun comando crea una sandbox a partire da un modello salvato. Vedi [Modelli](https://rudel.inline0.dev/it/docs/features/templates).

## push

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

Esegue il commit e il push di un checkout all'interno della directory della sandbox sul ramo `rudel/<id>`.

| Opzione | Significato |
|--------|---------|
| `--git` | Remote URL. Serve solo se non ne è stato memorizzato uno; viene ricordato dopo il primo push riuscito. |
| `--dir` | Directory relativa alla directory della sandbox, ad esempio `themes/my-theme`. Per impostazione predefinita usa la directory del checkout memorizzata oppure, in mancanza, l'intera directory della sandbox. |
| `--message` | Messaggio di commit, valore predefinito `Update from Rudel sandbox`. |

Vedi [Git](https://rudel.inline0.dev/it/docs/features/git).
