Cet outil est en cours de développement. À ce jour seuls Linux/x86-64 et MacOS/Arm sont supportés.

Climax fournit un outil en ligne de commande destiné à gérer les projets MaX v2. Il prend en charge l'installation de l'environnement de MaX, de ses bundles, ainsi que la production d'une copie statique du site.

Installation et mise à jour

pour Linux/x86-64 ou MacOS/Arm64 (processeur "Apple Silicon")

Dans un terminal:

curl -LsSf https://www.certic.unicaen.fr/climax/install.sh | sh

Pour mettre à jour climax vous pouvez répéter cette procédure.

pour Windows

⚠ Climax et Max ne sont pas activement testés sous Windows.

Téléchargez puis exécutez l'installeur:

Installeur Windows

Utilisation

Afficher la liste des commandes

testing/climax : climax --help
Utilisation: climax [OPTIONS] COMMANDE [ARGS]...

Utilitaire en ligne de commande pour la gestion des projets MaX.

La plupart des commandes sont à lancer dans le dossier du projet MaX, à l'exception des
commandes new, projects et cache-clear qui peuvent être lancées aussi en dehors d'un dossier MaX.

Options
┌────────────┬─────────────────────────────┐
│ -h, --help │ Voir cette aide et quitter  │
├────────────┼─────────────────────────────┤
│ --lang     │ Langue de sortie (fr ou en) │
└────────────┴─────────────────────────────┘

Commandes
┌────────────────┬──────────────────────────────────────────────────────────────────────┐
│ basex          │ Lance le shell de BaseX                                              │
├────────────────┼──────────────────────────────────────────────────────────────────────┤
│ basex-gui      │ Lance l'interface graphique de BaseX                                 │
├────────────────┼──────────────────────────────────────────────────────────────────────┤
│ bundles-add    │ Ajoute un bundle                                                     │
├────────────────┼──────────────────────────────────────────────────────────────────────┤
│ bundles-list   │ Liste les bundles disponibles                                        │
├────────────────┼──────────────────────────────────────────────────────────────────────┤
│ bundles-remove │ Supprime un bundle                                                   │
├────────────────┼──────────────────────────────────────────────────────────────────────┤
│ cache-clear    │ Efface le cache de climax                                            │
├────────────────┼──────────────────────────────────────────────────────────────────────┤
│ demo           │ Installe une édition de démonstration.                               │
├────────────────┼──────────────────────────────────────────────────────────────────────┤
│ feed           │ Ajoute un fichier ou un dossier XML                                  │
├────────────────┼──────────────────────────────────────────────────────────────────────┤
│ freeze         │ Fait une copie HTML statique                                         │
├────────────────┼──────────────────────────────────────────────────────────────────────┤
│ info           │ Affiche la configuration de MaX                                      │
├────────────────┼──────────────────────────────────────────────────────────────────────┤
│ new            │ Création d'une nouvelle instance de MaX                              │
├────────────────┼──────────────────────────────────────────────────────────────────────┤
│ projects       │ Liste les projets gérés par climax                                   │
├────────────────┼──────────────────────────────────────────────────────────────────────┤
│ run            │ Lance un script XQuery d'un bundle actif                             │
├────────────────┼──────────────────────────────────────────────────────────────────────┤
│ start          │ Démarre l'instance de MaX.                                           │
├────────────────┼──────────────────────────────────────────────────────────────────────┤
│ static-list    │ Liste les fichiers statiques (js, css, etc) du bundle de vocabulaire │
├────────────────┼──────────────────────────────────────────────────────────────────────┤
│ stop           │ Arrête l'instance de MaX                                             │
├────────────────┼──────────────────────────────────────────────────────────────────────┤
│ sync           │ Initialisation d'une instance existante de MaX.                      │
├────────────────┼──────────────────────────────────────────────────────────────────────┤
│ templates-list │ Liste les templates du bundle de vocabulaire                         │
├────────────────┼──────────────────────────────────────────────────────────────────────┤
│ version        │ Affiche la version de climax                                         │
└────────────────┴──────────────────────────────────────────────────────────────────────┘

Afficher de l'aide sur une commande en particulier

testing/climax : climax new --help
Utilisation: climax new [OPTIONS]

Options
┌───────────────┬─────────────────────────────┐
│ -h, --help    │ Voir cette aide et quitter  │
├───────────────┼─────────────────────────────┤
│ --interactive │ Menu interactif             │
├───────────────┼─────────────────────────────┤
│ --lang        │ Langue de sortie (fr ou en) │
└───────────────┴─────────────────────────────┘

Référence des commandes climax

climax gère les projets MaX et le runtime BaseX embarqué utilisé par MaX. La plupart des commandes sont prévues pour être lancées depuis le dossier d'un projet MaX. Les commandes qui acceptent --directory peuvent cibler un projet explicitement.

Options globales :

  • --lang fr|en : choisit la langue de sortie. Cette option est prioritaire sur CLIMAX_LANG et LANG.
  • --help : affiche l'aide climax pour les commandes ordinaires.

new

Crée un nouveau projet MaX, ou initialise le dossier courant.

  • Initialise le dossier courant comme projet MaX :
climax new
  • Crée un projet MaX à un chemin précis :
climax new /path/to/project
  • Crée un projet et choisit ses valeurs via des prompts :
climax new /path/to/project --interactive

Options :

  • --interactive : choisit les valeurs du projet via des prompts.

demo

Installe l'édition de démonstration dans un projet MaX existant.

  • Installe l'édition de démonstration dans le projet courant :
climax demo
  • Installe l'édition de démonstration dans un projet choisi par chemin :
climax demo --directory /path/to/project

Options :

  • --directory <path> : dossier du projet MaX.

start

Démarre la stack HTTP/BaseX de MaX.

  • Démarre le projet courant avec les ports configurés :
climax start
  • Démarre avec des ports HTTP et d'arrêt explicites :
climax start --http-port 8088 --http-stop-port 8089
  • Lie HTTP à un hôte précis et utilise un port BaseX précis :
climax start --http-host 127.0.0.1 --basex-port 1984
  • Démarre MaX comme processus de service :
climax start --service

Options :

  • --directory <path> : dossier du projet MaX.
  • --http-host <host> : hôte d'écoute HTTP.
  • --http-port <port> : port HTTP.
  • --basex-port <port> : port BaseX.
  • --http-stop-port <port> : port d'arrêt.
  • --service : démarre MaX comme processus de service.

stop

Arrête une instance MaX en cours d'exécution.

  • Arrête l'instance MaX en cours d'exécution pour le projet courant :
climax stop
  • Arrête une instance en utilisant un port d'arrêt explicite :
climax stop --http-stop-port 8089
  • Arrête l'instance d'un projet choisi par chemin :
climax stop --directory /path/to/project

Options :

  • --directory <path> : dossier du projet MaX.
  • --http-stop-port <port> : port d'arrêt.

info

Affiche la configuration du projet MaX. La sortie par défaut est un tableau stylisé.

  • Affiche la configuration du projet courant sous forme de tableau stylisé :
climax info
  • Affiche la configuration d'un projet choisi par chemin :
climax info --directory /path/to/project
  • Produit la configuration du projet courant en JSON :
climax info --json-out

Options :

  • --directory <path> : dossier du projet MaX.
  • --json-out : produit du JSON au lieu du tableau stylisé.

freeze

Crée une copie HTML statique d'un site MaX. La commande parcourt le site en cours d'exécution, écrit le HTML généré et les ressources statiques liées dans le dossier de sortie, puis réécrit les liens pour que les fichiers gelés restent relatifs.

Après le parcours, freeze copie aussi le dossier static de chaque bundle configuré depuis .max/basex/webapp/max/bundles/<bundle>/static vers <output>/<bundle>/static. Les fichiers déjà écrits pendant le parcours sont conservés.

  • Gèle le projet courant dans ./site :
climax freeze --output ./site
  • Gèle un projet choisi par chemin dans /tmp/site :
climax freeze --directory /path/to/project --output /tmp/site
  • Conserve la sortie de debug pendant le gel :
climax freeze --output ./site --debug

Options :

  • --directory <path> : dossier du projet MaX.
  • --output <path> : dossier de sortie pour les fichiers HTML/statiques.
  • --debug : active la sortie de debug.

bundles-list

Liste les bundles disponibles et configurés. Un bundle est un paquet d'extension MaX qui peut ajouter des templates, des fichiers statiques, des scripts ou d'autres ressources au projet.

  • Liste les bundles du projet courant :
climax bundles-list
  • Liste les bundles d'un projet choisi par chemin :
climax bundles-list --directory /path/to/project

Options :

  • --directory <path> : dossier du projet MaX.

bundles-add

Ajoute un bundle à la configuration du projet, puis synchronise le projet.

  • Ajoute le bundle max-dev au projet courant :
climax bundles-add max-dev
  • Ajoute le bundle max-dev à un projet choisi par chemin :
climax bundles-add max-dev --directory /path/to/project
  • Ajoute une archive de bundle locale au projet courant :
climax bundles-add ./local-bundle.zip

Options :

  • --directory <path> : dossier du projet MaX.

bundles-remove

Supprime un bundle de la configuration du projet, puis synchronise le projet.

  • Supprime le bundle max-dev du projet courant :
climax bundles-remove max-dev
  • Supprime le bundle max-dev d'un projet choisi par chemin :
climax bundles-remove max-dev --directory /path/to/project

Options :

  • --directory <path> : dossier du projet MaX.

feed

Charge un fichier XML ou un dossier dans la base BaseX max.

  • Charge un fichier XML dans la base max du projet courant :
climax feed ./document.xml
  • Charge un dossier dans la base max et passe les confirmations :
climax feed ./xml-directory --yes
  • Charge un fichier XML pour un projet choisi par chemin et affiche la commande BaseX :
climax feed ./document.xml --directory /path/to/project --verbose

Quand le chemin est un fichier standard, climax l'enregistre dans la base max sous le nom de base du fichier. Par exemple, ./data/chapter1.xml est stocké sous chapter1.xml. Si une ressource du même nom existe déjà dans BaseX, climax demande une confirmation avant de la remplacer. --yes passe cette confirmation.

Quand le chemin est un dossier, climax charge le contenu du dossier à la racine de la base max. Les imports de dossiers sont traités comme un remplacement du contenu de la base, donc climax demande une confirmation avant d'exécuter la commande sauf si --yes est fourni. Le chemin du dossier est transmis à BaseX avec un séparateur final afin que BaseX charge le contenu du dossier plutôt que de stocker le dossier lui-même sous son nom.

Si la base max n'existe pas encore, climax la crée avant d'importer le fichier ou le dossier. En cas de succès, la commande affiche le chemin absolu du fichier ou du dossier importé.

Options :

  • --directory <path> : dossier du projet MaX.
  • --verbose : affiche la commande BaseX exécutée.
  • --yes, -y : supprime les confirmations de remplacement.

sync

Installe ou rafraîchit .max, BaseX, les fichiers MaX, les ressources et les bundles configurés.

  • Synchronise le projet courant :
climax sync
  • Synchronise un projet choisi par chemin :
climax sync --directory /path/to/project

Options :

  • --directory <path> : dossier du projet MaX.

run

Exécute un script XQuery d'un bundle actif. Le format de cible est <bundle>/<script>. Le script est résolu sous :

.max/basex/webapp/max/bundles/<bundle>/scripts/<script>.xq

Le bundle doit être actif : son dossier doit exister et ne doit pas contenir de fichier .ignore. Les arguments placés après la cible sont convertis en bindings de variables externes BaseX.

  • Exécute le script helloworld du bundle actif max-dev :
climax run max-dev/helloworld
  • Exécute un script avec des bindings de variables externes :
climax run max-dev/helloworld -name Alice -count 3
  • Passe un binding de variable externe booléen :
climax run max-dev/helloworld --dry-run
  • Exécute un script de bundle pour un projet choisi par chemin :
climax run --directory /path/to/project max-dev/helloworld -name Alice

Exemples de conversion des arguments :

-name Alice     -> -b name=Alice
-count=3        -> -b count=3
--dry-run       -> -b dry-run=true

Exemple de script :

declare variable $name external := "world";
declare variable $count external := "1";

for $i in 1 to xs:integer($count)
return concat("Hello ", $name, "!")

Options :

  • --directory <path> : dossier du projet MaX. Cette option doit apparaître avant la cible <bundle>/<script>.

basex

Lance la classe shell BaseX (org.basex.BaseX) pour le projet courant. Contrairement aux commandes climax ordinaires, cette commande transmet les options inconnues à BaseX. --help est aussi transmis à BaseX ; utilisez climax help basex pour afficher l'aide locale de climax.

  • Ouvre le shell BaseX pour le projet courant :
climax basex
  • Ouvre le shell BaseX pour un projet choisi par chemin :
climax basex --directory /path/to/project
  • Affiche l'aide propre à BaseX :
climax basex -h
  • Exécute une requête BaseX :
climax basex -q "1 + 1"
  • Exécute une requête BaseX avec une option de sérialisation :
climax basex -s method=json -q "map { 'ok': true() }"

Options gérées par climax :

  • --directory <path> : dossier du projet MaX.
  • --verbose : affiche la commande Java/BaseX exécutée.

Tous les autres arguments sont transmis à BaseX exactement comme ils sont écrits. Climax ne traduit pas les options longues de style GNU en options BaseX ; utilisez donc les noms d'options BaseX, comme -h, -q, -Q, -b et -s.

basex-gui

Lance la classe GUI BaseX (org.basex.BaseXGUI) pour le projet courant.

  • Lance l'interface graphique BaseX pour le projet courant :
climax basex-gui
  • Lance l'interface graphique BaseX pour un projet choisi par chemin :
climax basex-gui --directory /path/to/project
  • Affiche la commande Java/BaseX avant de lancer l'interface graphique :
climax basex-gui --verbose

Options :

  • --directory <path> : dossier du projet MaX.
  • --verbose : affiche la commande Java/BaseX exécutée.

templates-list

Liste les fichiers de templates du bundle de vocabulaire configuré. La sortie est une liste simple de chemins, une ligne par chemin.

  • Liste les fichiers de templates du projet courant :
climax templates-list
  • Liste les fichiers de templates d'un projet choisi par chemin :
climax templates-list --directory /path/to/project

Options :

  • --directory <path> : dossier du projet MaX.

static-list

Liste les fichiers statiques du bundle de vocabulaire configuré. La sortie est une liste simple de chemins, une ligne par chemin.

  • Liste les fichiers statiques du projet courant :
climax static-list
  • Liste les fichiers statiques d'un projet choisi par chemin :
climax static-list --directory /path/to/project

Options :

  • --directory <path> : dossier du projet MaX.

projects

Liste les projets connus de climax. La sortie par défaut est un tableau stylisé.

  • Liste les projets connus sous forme de tableau stylisé :
climax projects
  • Produit les projets connus en JSON :
climax projects --json-out

Options :

  • --json-out : produit du JSON au lieu du tableau stylisé.

cache-clear

Vide le cache des artefacts téléchargés pour MaX/BaseX.

  • Vide le cache des téléchargements utilisés par climax :
climax cache-clear

version

Affiche la version de climax.

  • Affiche la version installée de climax :
climax version