À propos du projet

Glazier (commande `glaze`) est un outil en ligne de commande pour gérer de manière déclarative les espaces de travail tmux. Vous décrivez une fois les sessions, fenêtres et panneaux dans un fichier HCL `.glaze`, puis vous les recréez à la demande avec `glaze up`. Commandes principales : - `glaze up` — applique un profil, en créant la session, les fenêtres et les panneaux ; prend en charge `--detached`, `--clear`, `--debug`, les sockets personnalisés et les substitutions de variables. - `glaze down` — tue la session décrite par un profil ; idempotent et prend en charge `--session` pour tuer par nom sans profil. - `glaze ls` — liste les sessions sur le serveur tmux cible avec le nombre de fenêtres et les répertoires de départ. - `glaze format` — réécrit un profil en HCL canonique ; `--validate` applique le contrat de variables. - `glaze save` — capture la structure d'une session active (noms, répertoires, focus, disposition) dans un profil `.glaze` ; n'exporte délibérément pas les commandes, variables d'environnement, hooks ou options pour des raisons de sécurité. Fonctionnalités des profils : - Syntaxe HCL avec diagnostics de style Terraform et auto-validation. - Blocs `variable` typés lus via `var.` ; valeurs fournies via les options `--var` ou `--var-file`. - Espaces de noms intégrés : `env.*` (depuis `GLAZE_ENV_*`), `path.pwd` / `path.base`, et `local.*` depuis les blocs `locals`. - Fonctions de chaîne (upper, lower, replace, split, join, regexreplace, random, etc.) reposant sur go-cty. - Les sessions, fenêtres et panneaux prennent en charge les variables d'environnement, les hooks, les options tmux, les dispositions (préréglages nommés ou chaînes de disposition tmux brutes), le focus, et le dimensionnement/ajustement des panneaux. - Les commandes sont séquencées avec `tmux wait-for` (pas de pauses fixes) ; la commande finale s'exécute sans attente afin que les processus de longue durée ne bloquent pas la création de la session. Ordre de résolution des profils : `--profile-path`, `./.glaze`, ou `$GLAZE_PATH/.glaze`. L'outil ne prend en charge que Linux et macOS et nécessite tmux dans le PATH. Les binaires de version précompilés incluent des sommes de contrôle SHA256 et des attestations de provenance de build signées ; les compilations depuis les sources nécessitent Go 1.26+. Le projet est sous licence MIT.