
# Vytváření

## Vytvoření z hostitele

```bash
wp rudel create --name=alpha --theme=twentytwentyfour
```

Rudel vygeneruje ID z názvu a čtyř hexadecimálních znaků (například `alpha-3be7`), naklonuje tabulky hostitele WordPress do tabulek s vygenerovaným prefixem, zkopíruje vybranou šablonu do adresáře sandboxu a zaznamená sandbox do databáze hostitele WordPress. Hodnoty `siteurl` a `home` sandboxu zachovají hostitelský URL.

Pokud vynecháte `--theme`, Rudel použije aktivní šablonu webu hostitele. Šablona musí být na hostiteli nainstalovaná. Podřízená šablona s sebou přenese i svou nadřazenou šablonu.

Zkopíruje se každá tabulka s předponou hostitelských tabulek, včetně `users` a `usermeta`, s výjimkou vlastních tabulek Rudel. V aktuálním vydání sem patří také tabulky již existujících sandboxů, takže každý nový sandbox je větší než předchozí. Viz [issue #3](https://github.com/inline0/rudel/issues/3).

## Vytvoření z jiného sandboxu

```bash
wp rudel create --name=feature-b --clone-from=alpha-3be7
```

Nový sandbox získá kopii každé tabulky s předponou zdrojového sandboxu, včetně jeho tabulek snímků, a jeho motivu. Adresáře snímků se nekopírují, takže tyto tabulky se v novém sandboxu nepoužívají ([issue #12](https://github.com/inline0/rudel/issues/12)). Pokud je adresář motivu zdroje repozitářem Git, Rudel vytvoří propojený pracovní strom na větvi `rudel/{new-id}` místo prosté kopie. ID zdroje se zaznamená v novém záznamu.

## Metadata životního cyklu

Sandboxy mohou obsahovat metadata pro úklid a vlastnictví:

```bash
wp rudel create \
  --name=feature-a \
  --owner=dennis \
  --labels=agent,qa \
  --purpose="Test checkout changes" \
  --ttl-days=7
```

Použijte `--protected`, pokud automatický úklid nesmí sandbox odstranit. Viz [Zásady](https://rudel.inline0.dev/cs/docs/features/policy).

## Omezení

Vytváření selže, pokud je dosaženo nastavení `max_sandboxes` nebo `max_disk_mb`. Výchozí hodnota obou je `0`, což znamená, že limit není nastaven. Viz [Konfigurace](https://rudel.inline0.dev/cs/docs/configuration).

## Checkouty Git

```bash
wp rudel create --name=feature-a --git=https://example.test/my-theme.git
```

Rudel vytvoří sandbox, naklonuje vzdálený repozitář do `themes/my-theme` uvnitř adresáře sandboxu a přepne checkout na větev `rudel/{id}`. Přidejte `--type=plugin` a klonujte místo toho do `plugins/my-theme`. Pokud klonování selže, sandbox zůstane zachován a zobrazí se varování. Viz [Git](https://rudel.inline0.dev/cs/docs/features/git), kde se dozvíte, co sandbox z tohoto checkoutu zpřístupňuje.

## Struktura adresářů

```text
wp-content/rudel-environments/{id}/
  themes/       copied theme, plus any Git checkout
  snapshots/    snapshot metadata and theme copies
  logs/ metadata/ tmp/
  wp-cli.yml
  debug.log     when debug logging is active
```
