
# CLI

Rudel registra sus comandos en `wp rudel`. WP-CLI rechaza con `unknown --<name> parameter` las opciones que no figuran aquí para un comando.

Puede cambiar el nombre del comando raíz para usarlo integrado definiendo `RUDEL_CLI_COMMAND` en `wp-config.php` antes de que se cargue el complemento.

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

Eso cambia `wp rudel create` a `wp sandbox create`. El comportamiento del comando no cambia.

De forma predeterminada, los comandos se ejecutan en el host. Para ejecutar cualquier otro comando WP-CLI dentro de un entorno aislado, establezca `RUDEL_ENVIRONMENT`:

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

## crear

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

Crea un entorno aislado e imprime su ID.

| Opción | Significado |
|--------|---------|
| `--name` | Nombre legible para las personas. El ID es el nombre seguido de cuatro caracteres hexadecimales. De forma predeterminada, se usa el nombre del repositorio con `--git`; de lo contrario, `sandbox`. |
| `--theme` | Tema que se copiará al entorno aislado. Debe estar instalado en el host. De forma predeterminada, se usa el tema activo del host o el tema del entorno aislado de origen con `--clone-from`. |
| `--clone-from` | Clona las tablas y el tema de un entorno aislado existente en vez de los del host. |
| `--owner`, `--labels`, `--purpose` | Metadatos. Las etiquetas se separan con comas. |
| `--protected` | Excluye el entorno aislado de la limpieza. |
| `--ttl-days` | Vencimiento relativo al momento de creación. |
| `--expires-at` | Marca de tiempo de vencimiento explícita. |
| `--git` | Clona un repositorio remoto en el directorio del entorno aislado. Consulte [Git](https://rudel.inline0.dev/es/docs/features/git). |
| `--type` | Ubicación de la copia de `--git`: `theme` (predeterminada) o `plugin`. |
| `--template` | Etiqueta guardada en el registro; predeterminada: `blank`. No carga una plantilla guardada. |

`--clone-db`, `--clone-themes`, `--clone-plugins`, `--clone-uploads`, `--clone-all`, `--shared-plugins` y `--shared-uploads` están obsoletos. Solo cambian los mensajes de progreso: cada sandbox clona las tablas, copia un tema y comparte los plugins y las cargas.

El comando termina con una indicación para `cd` en el directorio del sandbox y ejecutar `wp post list`. Eso se ejecuta en el host, porque `wp-cli.yml` en el directorio del sandbox apunta al URL del host. Use `RUDEL_ENVIRONMENT` en su lugar.

## list

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

Muestra los sandboxes con ID, nombre, propietario, protección, vencimiento, estado, etiqueta de plantilla, fecha de creación y tamaño del directorio.

## info

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

Muestra un registro de sandbox, incluido el prefijo de tabla, el tema, las etiquetas, los metadatos de clonación, URL y la ruta del contenido.

## update

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

Actualiza los metadatos. `--ttl-days` cuenta desde ahora. No cambia el contenido del sitio del sandbox.

## destroy

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

Elimina las tablas del sandbox, su directorio y los worktrees vinculados, y borra su registro. El comando solicita confirmación; `--force` omite la solicitud. La protección no impide `destroy`: un sandbox protegido se destruye como cualquier otro.

## status

```bash
wp rudel status
```

Imprime una tabla con el estado del arranque, el sandbox actual, el directorio de sandboxes, el número de sandboxes, los valores de `rudel_config` y si la automatización está programada. Siempre imprime una tabla e ignora `--format`.

## cleanup

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

Sin `--merged`, elimina los sandboxes sin protección cuyo vencimiento ya pasó, que superan el límite de antigüedad o que llevan más tiempo inactivos que el límite establecido. `--max-age-days` y `--max-idle-days` anulan `rudel_config` durante esta ejecución. Con `--merged`, elimina los sandboxes cuyas ramas de worktree vinculadas de Git se hayan fusionado. Los sandboxes protegidos siempre se omiten. Consulte [Limpieza](https://rudel.inline0.dev/es/docs/features/cleanup).

## logs

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

Imprime las últimas líneas del `debug.log` del sandbox (50 de forma predeterminada). `--follow` ejecuta `tail -f`; `--clear` vacía el archivo. Consulte [Registro de errores](https://rudel.inline0.dev/es/docs/features/logging).

## snapshot

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

Crea una instantánea con nombre.

## restore

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

Restaura una instantánea. El comando solicita confirmación; `--force` omite la solicitud. Consulte [Instantáneas](https://rudel.inline0.dev/es/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]
```

Guarda, enumera y elimina copias de plantillas. Ningún comando crea un sandbox a partir de una plantilla guardada. Consulte [Plantillas](https://rudel.inline0.dev/es/docs/features/templates).

## push

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

Confirma los cambios y envía un checkout dentro del directorio del sandbox a la rama `rudel/<id>`.

| Opción | Significado |
|--------|-------------|
| `--git` | Remoto URL. Solo se necesita si no hay ninguno guardado; se recuerda después del primer envío correcto. |
| `--dir` | Directorio relativo al directorio del sandbox, por ejemplo `themes/my-theme`. De forma predeterminada, usa el directorio de checkout guardado o, si no existe, todo el directorio del sandbox. |
| `--message` | Mensaje de confirmación; el valor predeterminado es `Update from Rudel sandbox`. |

Consulte [Git](https://rudel.inline0.dev/es/docs/features/git).
