
# CLI

Rudel registrerer sine kommandoer under `wp rudel`. WP-CLI afviser med `unknown --<name> parameter` en indstilling, som en kommando ikke har angivet her.

Du kan omdøbe rodkommandoen til indlejret brug ved at definere `RUDEL_CLI_COMMAND` i `wp-config.php`, før pluginnet indlæses.

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

Det ændrer `wp rudel create` til `wp sandbox create`. Kommandoens funktion ændres ikke.

Kommandoer køres som standard på værten. Hvis en anden WP-CLI-kommando skal køres i en sandbox, skal du angive `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>]
```

Opretter en sandbox og udskriver dens id.

| Indstilling | Betydning |
|--------|---------|
| `--name` | Læsbart navn. Id'et er navnet plus fire hexadecimale tegn. Standard er arkivets navn med `--git`, ellers `sandbox`. |
| `--theme` | Tema, der skal kopieres til sandboxen. Det skal være installeret på værten. Standard er værtens aktive tema eller kildesandboxens tema med `--clone-from`. |
| `--clone-from` | Klon tabellerne og temaet fra en eksisterende sandbox i stedet for fra værten. |
| `--owner`, `--labels`, `--purpose` | Metadata. Etiketter adskilles med kommaer. |
| `--protected` | Undtag sandboxen fra oprydning. |
| `--ttl-days` | Udløb regnet fra oprettelsestidspunktet. |
| `--expires-at` | Eksplicit tidsstempel for udløb. |
| `--git` | Klon et fjernarkiv til sandboxmappen. Se [Git](https://rudel.inline0.dev/da/docs/features/git). |
| `--type` | Hvor `--git` foretager checkout: `theme` (standard) eller `plugin`. |
| `--template` | En etiket gemt på posten, standard `blank`. Den indlæser ikke en gemt skabelon. |

`--clone-db`, `--clone-themes`, `--clone-plugins`, `--clone-uploads`, `--clone-all`, `--shared-plugins` og `--shared-uploads` er forældede. De ændrer kun statusmeddelelserne: hver sandbox kloner tabellerne, kopierer ét tema og deler plugins og uploads.

Kommandoen slutter med et tip om at `cd` til sandboxmappen og køre `wp post list`. Det køres på værten, fordi `wp-cli.yml` i sandboxmappen peger på værtens URL. Brug i stedet `RUDEL_ENVIRONMENT`.

## list

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

Viser sandboxes med id, navn, ejer, beskyttelse, udløb, status, skabelonetiket, oprettelsestidspunkt og mappestørrelse.

## info

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

Viser én sandbox-post med tabelpræfiks, tema, etiketter, kloningsmetadata, URL og indholdssti.

## update

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

Opdaterer metadata. `--ttl-days` regnes fra nu. Indholdet af sandboxens websted ændres ikke.

## destroy

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

Fjerner sandboxens tabeller, sletter dens mappe og tilknyttede worktrees og sletter posten. Kommandoen beder om bekræftelse; `--force` springer prompten over. Beskyttelse forhindrer ikke `destroy`: en beskyttet sandbox slettes som alle andre.

## status

```bash
wp rudel status
```

Udskriver en tabel med bootstrapstatus, den aktuelle sandbox, sandboxmappen, antallet af sandboxes, værdierne for `rudel_config` og om automatisering er planlagt. Den udskriver altid en tabel og ignorerer `--format`.

## cleanup

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

Uden `--merged` fjernes ubeskyttede sandboxes, hvis udløbstiden er overskredet, eller hvis de er ældre end aldersgrænsen eller har været inaktive længere end inaktivitetsgrænsen. `--max-age-days` og `--max-idle-days` tilsidesætter `rudel_config` for denne kørsel. Med `--merged` fjernes sandboxes, hvis tilknyttede Git-worktree-grene er flettet ind. Beskyttede sandboxes springes altid over. Se [Oprydning](https://rudel.inline0.dev/da/docs/features/cleanup).

## logs

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

Udskriver de sidste linjer i sandboxens `debug.log` (standard 50). `--follow` kører `tail -f`; `--clear` tømmer filen. Se [Fejllogning](https://rudel.inline0.dev/da/docs/features/logging).

## snapshot

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

Opretter et snapshot med navn.

## restore

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

Gendanner et snapshot. Kommandoen beder om bekræftelse; `--force` springer prompten over. Se [Snapshots](https://rudel.inline0.dev/da/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]
```

Gemmer, viser og sletter skabelonkopier. Ingen kommando opretter en sandbox ud fra en gemt skabelon. Se [Skabeloner](https://rudel.inline0.dev/da/docs/features/templates).

## push

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

Committer og pusher en checkout i sandboxmappen til grenen `rudel/<id>`.

| Indstilling | Betydning |
|--------|---------|
| `--git` | Fjern-URL. Kun nødvendig, hvis ingen er gemt; huskes efter det første vellykkede push. |
| `--dir` | Mappe relativt til sandboxmappen, for eksempel `themes/my-theme`. Standard er den gemte checkout-mappe eller hele sandboxmappen. |
| `--message` | Commitbesked, standard `Update from Rudel sandbox`. |

Se [Git](https://rudel.inline0.dev/da/docs/features/git).
