Reference

Commandes CLI

Résolution des alias, commandes de pack, et arbre de commandes par contexte.

Forme générale

xbee [params internes] [commands] [options subcommand] args

xbee cherche d’abord, dans le premier argument, un alias connu :

xbee [options]* alias [args]*

Sinon, le premier argument (et éventuellement les suivants) est traité comme une commande :

xbee [commands]+ [options]* [args]*

Exemple avec alias :

xbee --stack mvn clean install
# option globale : --stack
# alias           : mvn
# args            : clean install

Exemple avec commande :

xbee vm up --log debug

Si le premier argument est un alias, l’exécution a lieu dans un container, avec les options propres au mode container. Sinon, xbee recherche la commande correspondante, qui définit elle-même ses options possibles.

Options internes

Ces paramètres, réservés à la communication host ↔ guest, ne sont pas d’usage courant :

--xbeeContainer --xbeeUID 1000 --xbeeGID 1000

Commandes de pack

Pour une commande définie par un pack :

xbee <options> cmdPack <args>
xbee --name tom catalina run
xbee enter --name tom
xbee enter

Options disponibles pour une commande de pack :

OptionRôle
-vVolumes
--nameNom donné au container
--detached, -dExécution détachée
--rmSuppression du container une fois terminé
--envVariables d’environnement

Règles de résolution : si --name est absent, un nouveau container est créé (docker run). Si --name est présent et qu’un container de ce nom existe déjà, xbee y exécute la commande (docker exec) ; sinon il en crée un nouveau. Si -d est présent, docker run -d.

Créer un pack

xbee new pack <NAME>

crée un pack dans un nouveau répertoire <NAME>. Sans nom, xbee new pack transforme le répertoire courant en pack — et échoue si c’est déjà le cas.

Créer un environnement

xbee new env

Exécutée depuis le répertoire d’un pack, génère un xbee-env.yaml de départ avec un hôte relié à ce pack via pack — voir Environnements. Exécutée depuis un répertoire qui n’est ni un pack ni un pack système (un répertoire vide, par exemple pour un environnement purement VM sans pack applicatif), elle génère à la place un hôte nu (host: a) rattaché directement au système choisi, sans pack. Dans les deux cas, il reste ensuite à adapter le fichier : ajouter des hôtes, surcharger var, etc.

OptionRôle
-s, --systemSystème de l’hôte généré (ex. ubuntu:24.04)
-p, --providerProvider d’infrastructure (ex. aws, gcp, azure) — incompatible avec un répertoire de pack, qui n’utilise que le provider Docker interne
-f, --forceÉcrase un répertoire existant du même nom
xbee new env -p aws -s ubuntu:24.04

depuis un répertoire vide, génère un xbee-env.yaml avec provider.name: aws, un hôte nu et les champs propres à AWS issus de ~/xbee.yaml — voir Providers & volumes.

Installer un pack

xbee install <chemin-ou-origin>

expose globalement les commandes d’un pack (sa section command), utilisables ensuite depuis n’importe quel répertoire — voir Pack Node.js. Le xbee-pack.yaml seul ne suffit pas : tant qu’il n’est pas installé (globalement via cette commande, ou localement via un xbee-install.yaml), ses commandes ne sont pas invocables, pas même depuis le répertoire du pack.

Gérer la configuration globale

xbee config list
xbee config get provider
xbee config set default provider aws
xbee config set -p aws region eu-west-1

Voir Configuration globale pour le fonctionnement de ~/xbee.yaml, la fusion avec les valeurs intégrées et toutes les sous-commandes.

Cycle xbee pack

xbee pack                         # réutilise les images et artefacts valides
xbee pack --force-system          # reconstruit la couche système
xbee pack --force-provision       # rejoue le provisionnement du pack
xbee pack --rebuild-builders      # reconstruit les artefacts builders
xbee pack --no-remote-builder-cache
xbee pack --plan                  # affiche le plan sans mutation

L’option --system <origine> de xbee pack hors abstraction choisit un pack système ; elle ne signifie pas « reconstruire la couche système ». Voir Builders et artefacts pour les commandes d’inspection, construction et gestion des caches.

Arbre de commandes par contexte

xbee/main/xbee.go détecte le contexte d’exécution (machine hôte, container, ou VM) et construit l’arbre de commandes approprié :

ContexteArbre
host, hors abstractionpack, enter, edit, commandes directes de container, new, config, version
host, packpack, up, enter, validate, builder, admin
host, pack buildercommandes du pack, plus build
host, environnementpack, up, down, enter, delete, validate, builder, admin
containercontainer.BuildPackCmdTree ou BuildEnvCmdTree
VMvm.BuildPackCmdTree ou BuildEnvCmdTree

Les erreurs se propagent via un panic/recover sur XbeeError, plutôt que par des retours d’erreur explicites.