
# CLI

Rudel enregistre ses commandes sous `wp rudel`. WP-CLI rejette avec `unknown --<name> parameter` toute option qui n’est pas répertoriée ici pour une commande.

Vous pouvez renommer la commande racine pour une utilisation intégrée en définissant `RUDEL_CLI_COMMAND` dans `wp-config.php` avant le chargement du plugin.

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

Cela transforme `wp rudel create` en `wp sandbox create`. Le comportement de la commande reste inchangé.

Par défaut, les commandes s’exécutent sur l’hôte. Pour exécuter toute autre commande WP-CLI dans un environnement isolé, définissez `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>]
```

Crée un environnement isolé et affiche son ID.

| Option | Signification |
|--------|---------|
| `--name` | Nom lisible. L’ID correspond au nom suivi de quatre caractères hexadécimaux. Par défaut, il s’agit du nom du dépôt avec `--git`, ou de `sandbox`. |
| `--theme` | Thème à copier dans l’environnement isolé. Il doit être installé sur l’hôte. Par défaut, il s’agit du thème actif de l’hôte, ou du thème de l’environnement source avec `--clone-from`. |
| `--clone-from` | Clone les tables et le thème d’un environnement isolé existant plutôt que de l’hôte. |
| `--owner`, `--labels`, `--purpose` | Métadonnées. Les libellés sont séparés par des virgules. |
| `--protected` | Exclut l’environnement isolé du nettoyage. |
| `--ttl-days` | Expiration calculée à partir de l’heure de création. |
| `--expires-at` | Horodatage d’expiration explicite. |
| `--git` | Clone un dépôt distant dans le répertoire de l’environnement isolé. Voir [Git](https://rudel.inline0.dev/fr/docs/features/git). |
| `--type` | Emplacement de checkout de `--git` : `theme` (par défaut) ou `plugin`. |
| `--template` | Libellé enregistré dans l’enregistrement ; valeur par défaut : `blank`. Ne charge pas de modèle enregistré. |

`--clone-db`, `--clone-themes`, `--clone-plugins`, `--clone-uploads`, `--clone-all`, `--shared-plugins` et `--shared-uploads` sont obsolètes. Elles ne modifient que les messages de progression : chaque bac à sable clone les tables, copie un thème et partage les extensions et les fichiers téléversés.

La commande se termine par une indication vous invitant à `cd` dans le répertoire du bac à sable et à exécuter `wp post list`. Cette commande s’exécute sur l’hôte, car le `wp-cli.yml` du répertoire du bac à sable pointe vers le URL de l’hôte. Utilisez plutôt `RUDEL_ENVIRONMENT`.

## liste

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

Liste les bacs à sable avec leur ID, nom, propriétaire, protection, date d’expiration, statut, libellé de modèle, date de création et taille du répertoire.

## info

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

Affiche un enregistrement de bac à sable, notamment le préfixe de table, le thème, les libellés, les métadonnées de clonage, URL et le chemin du contenu.

## mise à jour

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

Met à jour les métadonnées. `--ttl-days` définit le décompte à partir de maintenant. Cela ne modifie pas le contenu du site du bac à sable.

## suppression

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

Supprime les tables du bac à sable, son répertoire et les worktrees liés, puis efface son enregistrement. La commande demande une confirmation ; `--force` ignore cette demande. La protection n’empêche pas `destroy` : un bac à sable protégé est supprimé comme les autres.

## statut

```bash
wp rudel status
```

Affiche un tableau avec l’état d’initialisation, le bac à sable actuel, le répertoire des bacs à sable, leur nombre, les valeurs `rudel_config` et l’indication qu’une automatisation est planifiée ou non. Affiche toujours un tableau et ignore `--format`.

## nettoyage

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

Sans `--merged`, supprime les bacs à sable non protégés dont l’expiration est passée, ou qui dépassent la limite d’ancienneté ou d’inactivité. `--max-age-days` et `--max-idle-days` remplacent `rudel_config` pour cette exécution. Avec `--merged`, supprime les bacs à sable dont les branches de worktree Git liées ont été fusionnées. Les bacs à sable protégés sont toujours ignorés. Voir [Nettoyage](https://rudel.inline0.dev/fr/docs/features/cleanup).

## journaux

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

Affiche les dernières lignes du fichier `debug.log` du bac à sable (50 par défaut). `--follow` exécute `tail -f` ; `--clear` vide le fichier. Voir [Journalisation des erreurs](https://rudel.inline0.dev/fr/docs/features/logging).

## instantané

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

Crée un instantané nommé.

## restauration

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

Restaure un instantané. La commande demande une confirmation ; `--force` ignore cette demande. Voir [Instantanés](https://rudel.inline0.dev/fr/docs/features/snapshots).

## modèle

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

Enregistre, liste et supprime les copies de modèles. Aucune commande ne crée de bac à sable à partir d’un modèle enregistré. Voir [Modèles](https://rudel.inline0.dev/fr/docs/features/templates).

## envoyer

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

Valide et pousse un checkout situé dans le répertoire du bac à sable vers la branche `rudel/<id>`.

| Option | Signification |
|--------|---------|
| `--git` | Dépôt distant URL. Requis uniquement si aucun n’est enregistré ; mémorisé après le premier push réussi. |
| `--dir` | Répertoire relatif au répertoire du bac à sable, par exemple `themes/my-theme`. Par défaut, utilise le répertoire de checkout enregistré, ou tout le répertoire du bac à sable. |
| `--message` | Message de commit, par défaut `Update from Rudel sandbox`. |

Voir [Git](https://rudel.inline0.dev/fr/docs/features/git).
