
# CLI

Rudel регистрирует команды под `wp rudel`. WP-CLI возвращает ошибку `unknown --<name> parameter`, если команда получает параметр, не указанный здесь.

Для использования во встроенном режиме можно переименовать корневую команду, определив `RUDEL_CLI_COMMAND` в `wp-config.php` до загрузки плагина.

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

В результате `wp rudel create` заменяется на `wp sandbox create`. Поведение команды не меняется.

По умолчанию команды выполняются на хосте. Чтобы выполнить любую другую команду WP-CLI в песочнице, задайте `RUDEL_ENVIRONMENT`:

```bash
RUDEL_ENVIRONMENT=alpha-3be7 wp option get blogname
```

## Создать

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

Создает песочницу и выводит ее ID.

| Параметр | Значение |
|--------|---------|
| `--name` | Понятное человеку имя. ID состоит из имени и четырех шестнадцатеричных символов. По умолчанию используется имя репозитория с `--git`, иначе `sandbox`. |
| `--theme` | Тема для копирования в песочницу. Она должна быть установлена на хосте. По умолчанию используется активная тема хоста, а с `--clone-from` — тема исходной песочницы. |
| `--clone-from` | Клонировать таблицы и тему из существующей песочницы вместо хоста. |
| `--owner`, `--labels`, `--purpose` | Метаданные. Метки разделяются запятыми. |
| `--protected` | Исключить песочницу из очистки. |
| `--ttl-days` | Срок истечения относительно времени создания. |
| `--expires-at` | Явная временная метка истечения срока. |
| `--git` | Клонировать удаленный репозиторий в каталог песочницы. См. [Git](https://rudel.inline0.dev/ru/docs/features/git). |
| `--type` | Где `--git` выполняет checkout: `theme` (по умолчанию) или `plugin`. |
| `--template` | Метка в записи, по умолчанию `blank`. Сохраненный шаблон не загружается. |

`--clone-db`, `--clone-themes`, `--clone-plugins`, `--clone-uploads`, `--clone-all`, `--shared-plugins` и `--shared-uploads` устарели. Они меняют только сообщения о ходе выполнения: в каждой песочнице клонируются таблицы, копируется одна тема, а плагины и загрузки используются совместно.

Команда выводит подсказку: `cd` в каталог песочницы, затем выполнить `wp post list`. Это действие выполняется на хосте, так как `wp-cli.yml` в каталоге песочницы указывает на хостовый URL. Вместо этого используйте `RUDEL_ENVIRONMENT`.

## Список

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

Выводит список песочниц с ID, именем, владельцем, защитой, сроком истечения, статусом, меткой шаблона, временем создания и размером каталога.

## Сведения

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

Показывает запись о песочнице, включая префикс таблиц, тему, метки, метаданные клонирования, URL и путь к содержимому.

## Обновить

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

Обновляет метаданные. Значение `--ttl-days` отсчитывается от текущего времени. Содержимое сайта в песочнице не меняется.

## Удалить

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

Удаляет таблицы песочницы, ее каталог и связанные рабочие деревья, а также запись о ней. Команда запрашивает подтверждение; `--force` пропускает запрос. Защита не блокирует `destroy`: защищенная песочница удаляется так же, как любая другая.

## Статус

```bash
wp rudel status
```

Выводит таблицу с состоянием bootstrap, текущей песочницей, каталогом песочниц и их количеством, значениями `rudel_config` и сведениями о том, запланирована ли автоматизация. Таблица выводится всегда, параметр `--format` игнорируется.

## Очистка

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

Без `--merged` удаляет незащищенные песочницы, срок действия которых истек или которые превысили допустимый возраст либо период бездействия. Параметры `--max-age-days` и `--max-idle-days` переопределяют `rudel_config` для этого запуска. С параметром `--merged` удаляются песочницы, у которых связанные ветки рабочего дерева Git объединены. Защищенные песочницы всегда пропускаются. См. [Очистка](https://rudel.inline0.dev/ru/docs/features/cleanup).

## Журналы

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

Выводит последние строки журнала песочницы `debug.log` (по умолчанию 50). Параметр `--follow` выводит `tail -f`; `--clear` очищает файл. См. [Журналирование ошибок](https://rudel.inline0.dev/ru/docs/features/logging).

## Снимок

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

Создает именованный снимок.

## Восстановление

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

Восстанавливает снимок. Команда запрашивает подтверждение; `--force` пропускает запрос. См. [Снимки](https://rudel.inline0.dev/ru/docs/features/snapshots).

## Шаблон

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

Сохраняет, перечисляет и удаляет копии шаблонов. Ни одна команда не создает песочницу из сохраненного шаблона. См. [Шаблоны](https://rudel.inline0.dev/ru/docs/features/templates).

## Отправка изменений

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

Фиксирует изменения и отправляет их из рабочей копии внутри каталога песочницы в ветку `rudel/<id>`.

| Параметр | Значение |
|--------|---------|
| `--git` | Удаленный URL. Нужен только если значение не сохранено; запоминается после первой успешной отправки изменений. |
| `--dir` | Каталог относительно каталога песочницы, например `themes/my-theme`. По умолчанию используется сохраненный каталог checkout, иначе весь каталог песочницы. |
| `--message` | Сообщение коммита, по умолчанию `Update from Rudel sandbox`. |

См. [Git](https://rudel.inline0.dev/ru/docs/features/git).
