
# Úklid

Úklid odstraní sandboxy, které již nejsou potřeba. Nejprve zobrazte náhled:

```bash
wp rudel cleanup --dry-run
```

`--dry-run` vypíše, co by se odstranilo a proč. Spusťte jej bez příznaku a sandboxy odstraňte:

```bash
wp rudel cleanup
```

Příkaz nevyžaduje potvrzení.

## Zásady

Nechráněný sandbox se odstraní, pokud platí některá z těchto podmínek:

| Důvod | Pravidlo |
|--------|------|
| `expiry reached` | jeho `expires_at` je v minulosti |
| `age policy matched` | byl vytvořen před více než `max_age_days` |
| `idle policy matched` | poslední aktivita proběhla před více než `max_idle_days` |

Hodnoty `max_age_days` a `max_idle_days` pocházejí z `rudel_config` (obě mají výchozí hodnotu `0`, která pravidlo vypíná). Pro jedno spuštění je můžete změnit:

```bash
wp rudel cleanup --max-age-days=30 --dry-run
wp rudel cleanup --max-idle-days=7
```

Poslední aktivita se aktualizuje při každém požadavku, který vybere sandbox, a při vytváření snímků.

## Sloučené sandboxy

```bash
wp rudel cleanup --merged --dry-run
```

`--merged` spustí samostatný průchod namísto výše uvedených zásad. Sandbox odstraní, pokud jsou všechny jeho zaznamenané propojené pracovní stromy Git na větvích sloučených do výchozí větve repozitáře; poté tyto větve smaže. Propojené pracovní stromy vznikají při klonování sandboxu, jehož adresář motivu je repozitářem Git (viz [Git](https://rudel.inline0.dev/cs/docs/features/git)). Sandboxy vytvořené pomocí `--git` nemají žádné záznamy pracovních stromů a vždy se přeskakují ([issue #8](https://github.com/inline0/rudel/issues/8)).

## Chráněné sandboxy

Oba průchody chráněné sandboxy přeskakují. Pokud je má úklid zohlednit, nejprve zrušte ochranu pomocí `wp rudel update <id> --unprotected`. Příkaz `wp rudel destroy` ochranu ignoruje.

Odstraněním sandboxu se smažou jeho tabulky, spravované soubory a pracovní stromy a záznam prostředí Rudel. Úklid podle plánu nastavíte podle části [Automatizace](https://rudel.inline0.dev/cs/docs/features/automation).
