
# CLI

Rudel registreert zijn opdrachten onder `wp rudel`. WP-CLI weigert met `unknown --<name> parameter` een optie die een opdracht hier niet vermeldt.

U kunt de rootopdracht hernoemen voor ingebruikname in een andere context door `RUDEL_CLI_COMMAND` te definiëren in `wp-config.php` voordat de plugin wordt geladen.

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

Dat verandert `wp rudel create` in `wp sandbox create`. Het gedrag van de opdracht verandert niet.

Opdrachten worden standaard uitgevoerd op de host. Als u een andere WP-CLI-opdracht in een sandbox wilt uitvoeren, stelt u `RUDEL_ENVIRONMENT` in:

```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>]
```

Maakt een sandbox aan en toont de ID.

| Optie | Betekenis |
|--------|---------|
| `--name` | Menselijk leesbare naam. De ID bestaat uit de naam plus vier hexadecimale tekens. Standaard de repositorynaam met `--git`, anders `sandbox`. |
| `--theme` | Thema dat naar de sandbox wordt gekopieerd. Moet op de host zijn geïnstalleerd. Standaard het actieve thema van de host, of het thema van de bronsandbox met `--clone-from`. |
| `--clone-from` | Kloon tabellen en het thema van een bestaande sandbox in plaats van de host. |
| `--owner`, `--labels`, `--purpose` | Metadata. Labels worden door komma's gescheiden. |
| `--protected` | Sluit de sandbox uit van opruiming. |
| `--ttl-days` | Vervaldatum ten opzichte van het aanmaaktijdstip. |
| `--expires-at` | Expliciet tijdstip van verval. |
| `--git` | Kloon een externe repository naar de sandboxmap. Zie [Git](https://rudel.inline0.dev/nl/docs/features/git). |
| `--type` | Waar `--git` wordt uitgecheckt: `theme` (standaard) of `plugin`. |
| `--template` | Een label dat in het record wordt opgeslagen, standaard `blank`. Hiermee wordt geen opgeslagen sjabloon geladen. |

`--clone-db`, `--clone-themes`, `--clone-plugins`, `--clone-uploads`, `--clone-all`, `--shared-plugins` en `--shared-uploads` zijn verouderd. Ze veranderen alleen de voortgangsberichten: elke sandbox kloont de tabellen, kopieert één thema en deelt plugins en uploads.

De opdracht eindigt met de aanwijzing om `cd` naar de sandboxmap te gaan en `wp post list` uit te voeren. Dat wordt op de host uitgevoerd, omdat `wp-cli.yml` in de sandboxmap verwijst naar de URL van de host. Gebruik in plaats daarvan `RUDEL_ENVIRONMENT`.

## list

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

Geeft sandboxes weer met ID, naam, eigenaar, bescherming, vervaldatum, status, sjabloonlabel, aanmaaktijd en mapgrootte.

## info

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

Toont één sandboxrecord, inclusief tabelvoorvoegsel, thema, labels, kloonmetadata, URL en inhoudspad.

## update

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

Werkt metadata bij. `--ttl-days` wordt gerekend vanaf nu. Dit verandert de site-inhoud van de sandbox niet.

## destroy

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

Verwijdert de sandboxtabellen, de sandboxmap en gekoppelde worktrees, en verwijdert het record. De opdracht vraagt om bevestiging; `--force` slaat de vraag over. Bescherming houdt `destroy` niet tegen: een beschermde sandbox wordt net als elke andere vernietigd.

## status

```bash
wp rudel status
```

Toont een tabel met de bootstrapstatus, huidige sandbox, sandboxmap, aantal sandboxes, de waarden van `rudel_config` en of automatisering is ingepland. Er wordt altijd een tabel getoond en `--format` wordt genegeerd.

## cleanup

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

Zonder `--merged` worden onbeschermde sandboxes verwijderd waarvan de vervaldatum is verstreken, die ouder zijn dan de leeftijdslimiet of langer inactief zijn dan de inactiviteitslimiet. `--max-age-days` en `--max-idle-days` overschrijven `rudel_config` voor deze uitvoering. Met `--merged` worden sandboxes verwijderd waarvan de gekoppelde Git-worktreebranches zijn samengevoegd. Beschermde sandboxes worden altijd overgeslagen. Zie [Opruiming](https://rudel.inline0.dev/nl/docs/features/cleanup).

## logs

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

Toont de laatste regels van het sandbox-`debug.log` (standaard 50). `--follow` voert `tail -f` uit; `--clear` leegt het bestand. Zie [Foutregistratie](https://rudel.inline0.dev/nl/docs/features/logging).

## snapshot

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

Maakt een benoemde momentopname.

## restore

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

Zet een momentopname terug. De opdracht vraagt om bevestiging; `--force` slaat de vraag over. Zie [Momentopnamen](https://rudel.inline0.dev/nl/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]
```

Slaat sjabloonkopieën op, geeft ze weer en verwijdert ze. Geen opdracht maakt een sandbox op basis van een opgeslagen sjabloon aan. Zie [Sjablonen](https://rudel.inline0.dev/nl/docs/features/templates).

## push

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

Commit en pusht een checkout in de sandboxmap naar de branch `rudel/<id>`.

| Optie | Betekenis |
|--------|---------|
| `--git` | Externe URL. Alleen nodig als er geen is opgeslagen; wordt onthouden na de eerste geslaagde push. |
| `--dir` | Map relatief ten opzichte van de sandboxmap, bijvoorbeeld `themes/my-theme`. Standaard de opgeslagen checkoutmap, anders de volledige sandboxmap. |
| `--message` | Commitbericht, standaard `Update from Rudel sandbox`. |

Zie [Git](https://rudel.inline0.dev/nl/docs/features/git).
