WatchExec
Le développement de logiciels implique souvent d'exécuter les mêmes commandes encore et encore. Ennuyeux!
watchexec est un outil simple et autonome qui regarde un chemin et exécute une commande chaque fois qu'il détecte les modifications.
Exemple de cas d'utilisation:
- Exécuter automatiquement les tests unitaires
- Exécuter des calendriers de syntaxe
- Reconstruire des artefacts
Caractéristiques
- Invocation et utilisation simple, ne nécessite pas de ligne de commande cryptique impliquant
xargs - S'exécute sur OS X, Linux et Windows
- Surveille le répertoire actuel et toutes les sous-répertoires pour les modifications
- Fusionne plusieurs événements de système de fichiers en un, pour les éditeurs qui utilisent des fichiers swap / sauvegarde lors de l'enregistrement
- Charge les fichiers
.gitignore et .ignore - Utilise des groupes de processus pour garder les programmes de fourniture
- Fournit les chemins qui ont changé dans les variables d'environnement ou STDIN
- Ne nécessite pas d'exécution de la langue, non lié à une langue ou un écosystème particulier
- Et plus!
Démarrage rapide
Regardez tous les fichiers JavaScript, CSS et HTML dans le répertoire actuel et tous les sous-répertoires pour les modifications, exécutant npm run build lorsqu'un changement est détecté:
$ watchexec -e js,css,html npm run build
Appel / redémarrer python server.py lorsqu'un fichier python dans le répertoire actuel (et tous les sous-répertoires) change:
$ watchexec -r -e py -- python server.py
Plus d'exemples d'utilisation: dans la CLI Readme!
Installer
- Avec votre gestionnaire de colis pour Arch, Debian, Homebrew, Nix, Scoop, Chocolatey…
- De Binary avec Binstall:
cargo binstall watchexec-cli - En tant que package binaire pré-construit de GitHub
- De la source avec cargaison:
cargo install --locked watchexec-cli
Toutes les options en détail: dans le CLI Readme, dans l'aide en ligne ( watchexec -h , watchexec --help ou watchexec --manual ) et dans la page manuelle.
Augmenter
WatchExec se marie bien avec:
- CheckExec: Pour exécuter uniquement lorsque les fichiers source sont plus récents qu'un fichier cible
- Juste: une alternative moderne à
make - SystemFD: Passage du socket en développement
Étendre
- Bibliothèque WatchExec: pour créer des outils plus spécialisés sur WatchExec.
- WatchExec-Events: Types d'événements pour WatchExec.
- WatchExec-Signals: Types de signaux pour WatchExec.
- WatchExec-SuperVisor: Process Lifecycle Manager (la partie EXEC de WatchExec).
- ClearScreen: pour effacer l'écran (terminal) sur chaque plate-forme.
- Groupe de commandes: Pour exécuter les commandes dans les groupes de processus.
- Ignorez les fichiers: pour trouver, analyser et interpréter Ignorez les fichiers.
- Origines du projet: pour trouver le (s) répertoire d'origine d'un projet.
- Notifier: pour répondre aux modifications de fichiers (tiers).
En aval
Sélectionné en aval de WatchExec et des caisses associées:
- Watch Cargo: un observateur spécialisé pour les projets de rouille / cargaison.
- Cargo Lambda: un outil de développement pour les fonctions AWS Lambda alimentées par la rouille.
- Créer-Rust-App: un modèle pour les applications Web Rust + React.
- Dotter: un gestionnaire de dotfile.
- GHCIWATCH: Un observateur spécialisé pour les projets Haskell.
- Tectonique: un système de composition Tex / Latex.