Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

1. Installation et première exécution

Dans ce chapitre, tu vas mettre le binaire haw sur ta machine, confirmer qu’il fonctionne, activer la complétion par tabulation — puis lancer ta toute première exécution de haw, en regardant le cockpit au clavier s’ouvrir. C’est court : on te veut vite devant un prompt, et on veut que tu voies où le cours se dirige.

Setting up the haw tool on your machine

Une configuration unique, puis tu es au prompt pour le reste du cours.

🎯 Dans ce chapitre, tu vas apprendre à…

  • Installer haw via le canal qui convient à ta machine — Cargo, Homebrew, Scoop ou le binaire statique musl.
  • Confirmer que le binaire est sur ton PATH et affiche haw 0.1.7.
  • Activer la complétion par tabulation du shell pour qu’il complète les sous-commandes et les options au fur et à mesure que tu apprends.
  • Lancer haw une première fois et regarder le cockpit s’ouvrir — un avant-goût de là où tu vas.

L’outil est livré sous forme d’un binaire unique nommé haw. Aucun runtime, aucun interpréteur, rien à maintenir à jour à côté. La version actuelle est la v0.1.7.

📦 1. Installe-le

Choisis la ligne qui correspond à ta configuration — toutes installent le même binaire haw.

cargo install hawser                              # Rust / crates.io (canonique)
brew install nastwinns/tap/hawser                 # macOS + Linux (Homebrew)

Sous Windows, utilise Scoop :

scoop bucket add nastwinns https://github.com/Nastwinns/scoop-bucket
scoop install hawser

Sur un serveur Linux, un conteneur ou un hôte isolé du réseau, le binaire musl statique est le choix le plus simple — il est entièrement statique (pas de glibc, pas de runtime), donc un seul fichier s’exécute :

curl -sSL https://github.com/Nastwinns/hawser/releases/download/v0.1.7/haw-0.1.7-x86_64-unknown-linux-musl.tar.gz \
  | tar xz && sudo install haw /usr/local/bin/

Astuce : cargo install hawser est l’installation Rust canonique. Elle compile depuis les sources et dépose haw dans ~/.cargo/bin — assure-toi que ce répertoire est bien dans ton PATH.

Pour tous les autres canaux (.deb/.rpm, AUR, Nix, Docker), ainsi que la vérification de signature et le workflow air-gap complet, voir Installing hawser.

✅ 2. Vérifie que ça marche

Quel que soit le canal utilisé, confirme que le binaire est dans ton PATH :

haw --version

Tu devrais voir la version s’afficher :

haw 0.1.7

Si tu obtiens « command not found », c’est que le répertoire d’installation n’est pas encore dans ton PATH — pour cargo, c’est ~/.cargo/bin. Corrige ça et relance.

Maintenant, jette un œil à la surface complète des commandes — pas besoin de tout lire, prends juste le pouls :

haw --help

Tu verras les sous-commandes que nous couvrirons : sync, status, tree, run, build, test, change, plugins, et d’autres encore. Chacune est un seul mot facile à deviner.

Un rapide aperçu de haw en ligne de commande — chaque sous-commande est un seul mot facile à deviner.

⌨️ 3. Active la complétion du shell

C’est un petit gain de confort qui paie tout au long du cours : tu appuies sur Tab et le shell complète les sous-commandes et les flags à ta place.

haw completions <shell> imprime un script de complétion sur stdout. Redirige-le vers le bon endroit pour ton shell :

haw completions zsh  > ~/.zfunc/_haw                 # zsh
haw completions bash > /etc/bash_completion.d/haw    # bash
haw completions fish > ~/.config/fish/completions/haw.fish   # fish

Astuce : Pour zsh, assure-toi que ~/.zfunc est dans ton $fpath (ajoute fpath=(~/.zfunc $fpath) avant compinit dans ton ~/.zshrc), puis redémarre ton shell. Désormais haw sy<Tab> se complète en haw sync.

🚁 4. Ta première exécution — ouvre le cockpit

Voici la récompense. haw n’est pas qu’un lot de sous-commandes : lance-le sans aucune sous-commande et il ouvre un cockpit plein écran, piloté au clavier, pour ta flotte.

haw

Tu n’as pas encore d’espace de travail, donc il n’y a rien de réel à afficher. Bonne nouvelle : il y a un contrôleur de démo intégré, rempli de dépôts, de PR et d’exécutions de CI factices, pour que chaque vue contienne quelque chose — sans réseau, sans configuration :

haw dash --demo

Une grille de flotte en direct remplit le terminal. Déplace-toi avec / (ou k/j, façon Vim), appuie sur Enter pour plonger dans un dépôt, Esc pour revenir, ? pour l’aide en surimpression, et q pour quitter.

Le cockpit que tu viens d’ouvrir : la grille de flotte, les explorations détaillées et les actions au clavier — le tout dans le terminal.

Juste un avant-goût pour l’instant. Fouille un peu, puis quitte avec q. Nous ferons une vraie visite guidée du cockpit au chapitre 4 — mais d’abord il te faut une vraie flotte à lui pointer, et c’est ce que construisent les trois chapitres suivants.

✅ Récapitulatif

  • haw est un binaire unique — installe-le avec cargo, brew, scoop, ou l’archive musl statique.
  • haw --version doit afficher haw 0.1.7 ; haw --help liste toutes les commandes.
  • haw completions <shell> te donne la complétion par tabulation — configure-la maintenant, tu te remercieras plus tard.
  • haw seul (ou haw dash --demo) ouvre le cockpit — ton premier aperçu du centre de contrôle, exploré en profondeur au chapitre 4.
  • La matrice d’installation complète couvre les releases signées et les hôtes isolés du réseau.

🙌 À toi de jouer

Point de contrôle de deux minutes — prouve ton installation avant de continuer :

  • Lance haw –version et confirme que tu vois haw 0.1.7. S’il affiche « command not found », le répertoire d’installation n’est pas encore sur ton PATH — corrige ça d’abord.
  • Configure les complétions pour ton shell, redémarre-le, puis tape haw sy et appuie sur Tab. Ça devrait se compléter en haw sync.
  • Lance haw dash –demo, déplace-toi avec /, appuie sur Enter pour entrer dans un dépôt et Esc pour en sortir, puis q pour quitter. Tu viens de rencontrer le cockpit.

👉 La suite

Maintenant, donnons à haw quelque chose de réel à gérer. Premier arrêt : le manifeste — là où tu déclares ta flotte → 2. Le manifeste.