Aller au contenu
Les inscriptions sont fermées. Menestrel sert désormais aux sites réalisés par Agora Studio, agence web dans la Loire.

Référence CLI

Le CLI menestrel se lance sans installation via npx menestrel <commande>. Toutes les commandes acceptent --lang fr|en et --json.

Branche un site Astro existant : écrit cms.config.ts, un .env non versionné, et affiche les extraits à coller dans la config Astro et le layout. Les écritures sont idempotentes, un second passage ne casse rien.

Option Description
--token <cmt_...> Token admin du projet, posé dans le .env.
--yes N’interroge pas, accepte les écritures par défaut.

Pousse le schéma décrit dans cms.config.ts vers le serveur.

Option Description
--config <fichier> Chemin de la config (défaut cms.config.ts).
--rename <a=b> Déclare un renommage de collection ou de champ. Répétable.
--dry-run Affiche le diff sans rien pousser.
--allow-deletions Autorise les suppressions destructives (sinon refus, code 3).
--yes N’interroge pas avant de pousser.

Migre un site existant : scanne src/content/ et src/data/, mappe vers le schéma, envoie les médias dédupliqués, crée et publie les entrées. Reprenable après interruption.

Option Description
--config <fichier> Chemin de la config.
--input <dossier> Racine à scanner (défaut : le dossier courant).
--dry-run Scanne et mappe sans rien écrire.
--yes Lance l’import sans confirmation.

Ressort les contenus : content/ en Markdown, data/ en JSON à l’identique, media/ avec les originaux, plus un README bilingue.

Option Description
--out <dossier> Dossier de sortie (défaut ./menestrel-export). Alias : --output.
--no-media N’exporte pas les binaires, la référence est conservée.

Télécharge le snapshot publié dans .menestrel/snapshot/ pour un build hors-ligne.

Option Description
--output <dossier> Dossier cible (défaut .menestrel/snapshot).
--snapshot-id <snap_...> Épingle un snapshot précis au lieu du dernier publié.
--demo Écrit une fixture de démonstration, sans réseau ni token.
Code Sens
0 Succès.
1 Erreur interne ou réseau.
2 Config invalide.
3 Suppression refusée sans --allow-deletions.
4 Conflit de version ou migration en cours.
5 Authentification : token manquant, invalide, ou projet ne correspondant pas.