
# CLI

Rudel registruje své příkazy pod `wp rudel`. WP-CLI odmítne možnost, kterou příkaz zde neuvádí, chybou `unknown --<name> parameter`.

Kořenový příkaz můžete přejmenovat pro vložené použití tím, že před načtením pluginu definujete `RUDEL_CLI_COMMAND` v `wp-config.php`.

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

Tím se `wp rudel create` změní na `wp sandbox create`. Chování příkazu se nezmění.

Příkazy se ve výchozím nastavení spouštějí nad hostitelem. Chcete-li spustit jakýkoli jiný příkaz WP-CLI uvnitř sandboxu, nastavte `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>]
```

Vytvoří sandbox a vypíše jeho ID.

| Možnost | Význam |
|--------|---------|
| `--name` | Název čitelný pro člověka. ID tvoří název a čtyři hexadecimální znaky. Ve výchozím nastavení se použije název repozitáře s `--git`, jinak `sandbox`. |
| `--theme` | Šablona, kterou zkopírovat do sandboxu. Musí být nainstalovaná na hostiteli. Ve výchozím nastavení se použije aktivní šablona hostitele, případně šablona zdrojového sandboxu s `--clone-from`. |
| `--clone-from` | Naklonuje tabulky a šablonu z existujícího sandboxu místo hostitele. |
| `--owner`, `--labels`, `--purpose` | Metadata. Štítky se oddělují čárkami. |
| `--protected` | Vyloučí sandbox z čištění. |
| `--ttl-days` | Platnost počítaná od vytvoření. |
| `--expires-at` | Explicitní časové razítko vypršení platnosti. |
| `--git` | Naklonuje vzdálený repozitář do adresáře sandboxu. Viz [Git](https://rudel.inline0.dev/cs/docs/features/git). |
| `--type` | Kam `--git` provede checkout: `theme` (výchozí) nebo `plugin`. |
| `--template` | Štítek uložený v záznamu, výchozí `blank`. Nenačítá uloženou šablonu. |

`--clone-db`, `--clone-themes`, `--clone-plugins`, `--clone-uploads`, `--clone-all`, `--shared-plugins` a `--shared-uploads` jsou zastaralé. Mění pouze zprávy o průběhu: každý sandbox klonuje tabulky, kopíruje jednu šablonu a sdílí pluginy a nahrané soubory.

Příkaz končí nápovědou, která vás vybízí k přechodu do adresáře sandboxu pomocí `cd` a ke spuštění `wp post list`. Ten se spustí nad hostitelem, protože `wp-cli.yml` v adresáři sandboxu odkazuje na hostitelský URL. Místo toho použijte `RUDEL_ENVIRONMENT`.

## list

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

Vypíše sandboxy spolu s ID, názvem, vlastníkem, ochranou, vypršením platnosti, stavem, štítkem šablony, časem vytvoření a velikostí adresáře.

## info

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

Zobrazí záznam jednoho sandboxu včetně prefixu tabulek, šablony, štítků, metadat klonování, URL a cesty k obsahu.

## update

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

Aktualizuje metadata. `--ttl-days` se počítá od aktuálního času. Obsah webu v sandboxu se nezmění.

## destroy

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

Odstraní tabulky sandboxu, jeho adresář a propojené pracovní stromy a smaže jeho záznam. Příkaz požádá o potvrzení; `--force` přeskočí výzvu. Ochrana neblokuje `destroy`: chráněný sandbox se zničí stejně jako kterýkoli jiný.

## status

```bash
wp rudel status
```

Vypíše tabulku se stavem bootstrapu, aktuálním sandboxem, adresářem sandboxů, jejich počtem, hodnotami `rudel_config` a informací, zda je naplánována automatizace. Vždy vypíše tabulku a ignoruje `--format`.

## cleanup

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

Bez `--merged` odstraní nechráněné sandboxy, jejichž platnost vypršela nebo které překročily limit stáří či nečinnosti. `--max-age-days` a `--max-idle-days` pro toto spuštění přepíší `rudel_config`. S `--merged` odstraní sandboxy, jejichž propojené větve pracovních stromů Git byly sloučeny. Chráněné sandboxy se vždy přeskočí. Viz [Čištění](https://rudel.inline0.dev/cs/docs/features/cleanup).

## logs

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

Vypíše poslední řádky souboru `debug.log` sandboxu (výchozí počet je 50). `--follow` spustí `tail -f`; `--clear` soubor vyprázdní. Viz [Zaznamenávání chyb](https://rudel.inline0.dev/cs/docs/features/logging).

## snapshot

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

Vytvoří pojmenovaný snímek.

## restore

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

Obnoví snímek. Příkaz požádá o potvrzení; `--force` tuto výzvu přeskočí. Viz [Snímky](https://rudel.inline0.dev/cs/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]
```

Ukládá, vypisuje a maže kopie šablon. Žádný příkaz nevytvoří sandbox z uložené šablony. Viz [Šablony](https://rudel.inline0.dev/cs/docs/features/templates).

## push

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

Potvrdí a odešle kopii pracovního stromu uvnitř adresáře sandboxu do větve `rudel/<id>`.

| Možnost | Význam |
|--------|---------|
| `--git` | Vzdálený repozitář URL. Je potřeba pouze tehdy, pokud žádný není uložen; po prvním úspěšném odeslání se zapamatuje. |
| `--dir` | Adresář relativní k adresáři sandboxu, například `themes/my-theme`. Ve výchozím nastavení se použije uložený adresář checkoutu, jinak celý adresář sandboxu. |
| `--message` | Zpráva commitu, výchozí `Update from Rudel sandbox`. |

Viz [Git](https://rudel.inline0.dev/cs/docs/features/git).
