
# Options globales et codes de sortie

Les options peuvent apparaître n'importe où dans l'invocation — avant la commande, après le chemin de configuration, entremêlées. `sovrium --watch start app.yaml` et `sovrium start app.yaml --watch` sont la même commande.

## Options

| Option               | Commandes        | Description                                                                                |
| -------------------- | ---------------- | ------------------------------------------------------------------------------------------ |
| `--watch`, `-w`      | `start`          | Surveille le fichier de configuration et recharge à chaud à chaque modification.           |
| `--publicDir <path>` | `start`, `build` | Répertoire de ressources statiques à servir (ou à copier dans la sortie du build).         |
| `--no-publicDir`     | `start`, `build` | Ne sert aucune ressource statique. Prime sur la variable d'environnement et sur le défaut. |
| `--output <path>`    | `schema`         | Écrit le JSON Schema dans un fichier au lieu de la sortie standard.                        |
| `--template <name>`  | `init`           | Nom d'un modèle intégré, ou un dépôt GitHub (`owner/repo[#ref]`).                          |
| `--name <name>`      | `init`           | Nom d'application écrit dans la configuration générée.                                     |
| `--force`            | `init`           | Écrase un `app.yaml` existant.                                                             |
| `--config <path>`    | `admin create`   | Configuration utilisée pour résoudre les réglages d'authentification.                      |
| `--password <value>` | `admin create`   | Mot de passe administrateur. Omettez-le pour être invité, ce qui exige un TTY.             |
| `--message <text>`   | `reload`         | Note d'exploitation enregistrée sur la nouvelle version de configuration.                  |
| `--version`, `-v`    | toutes           | Affiche la version et quitte. L'emporte toujours, où qu'elle apparaisse.                   |
| `--help`, `-h`       | toutes           | Affiche l'aide et quitte. Avec une commande devant, affiche l'aide de cette commande.      |

## Ressources statiques

`--publicDir` est la seule option dotée d'un repli à plusieurs étages, partagé par `start` et `build` :

1. `--no-publicDir` — désactivation totale ; rien d'autre n'est consulté.
2. `--publicDir <path>` — le chemin explicite.
3. `SOVRIUM_PUBLIC_DIR` — la même chose depuis l'environnement. La valeur littérale `none` est l'écriture par variable d'environnement de `--no-publicDir`.
4. Sinon, `public/` **à côté du fichier de configuration**.

Le défaut est ancré au fichier de configuration plutôt qu'au répertoire de travail, et c'est volontaire : la même commande sert les mêmes fichiers d'où que vous la lanciez. Avec un `APP_SCHEMA` en ligne, il n'y a pas de fichier de configuration où s'ancrer : aucun défaut ne s'applique.

```bash
sovrium start app.yaml --publicDir ./assets
sovrium start app.yaml --no-publicDir
SOVRIUM_PUBLIC_DIR=none sovrium build app.yaml
```

## Les options inconnues sont rejetées

Tout jeton préfixé par `-` absent du tableau ci-dessus interrompt la commande avant le dispatch :

```text
Error: Unknown flag "--wtach"
```

Cela existe à cause de ce qui se produisait avant. Une option mal orthographiée était traitée comme un argument positionnel, retombait sur le `start` implicite, et échouait avec `Error: No configuration provided` — un message exact à propos d'un tout autre problème. Désormais le jeton fautif est nommé.

## Codes de sortie

| Code | Signification                                                                        |
| ---- | ------------------------------------------------------------------------------------ |
| `0`  | Succès                                                                               |
| `1`  | Échec — configuration invalide, fichier manquant, commande ou option inconnue, refus |

Tous les chemins d'échec sortent en `1` ; la distinction vit dans le message, pas dans le code. Le contrôle en CI tient donc en une ligne :

```bash
sovrium validate app.yaml || exit 1
```

Un échec non rattrapé affiche une bannière `Unexpected error:` avec un lien pour ouvrir un ticket. Cette bannière signifie que Sovrium lui-même n'avait pas anticipé la défaillance — cela mérite un signalement, en y recopiant le message.

## Pages associées

- [Aperçu du CLI](/fr/docs/cli) — commandes et sources de configuration.
- [Commandes de projet](/fr/docs/cli-project) — les commandes auxquelles appartiennent la plupart de ces options.
- [Variables d'environnement](/fr/docs/env-vars) — la moitié « environnement » des entrées du CLI.
