Software development often involves running the same commands over and over. Boring!
watchexec
is a simple, standalone tool that watches a path and runs a command whenever it detects modifications.
Example use cases:
.gitignore
to determine which files to ignore notifications for$WATCHEXEC_UPDATED_PATH
the path of the first file that triggered a change$WATCHEXEC_COMMON_PATH
the longest common path of all of the files that triggered a changexargs
Watch all JavaScript, CSS and HTML files in the current directory and all subdirectories for changes, running make
when a change is detected:
$ watchexec --exts js,css,html make
Call make test
when any file changes in this directory/subdirectory, except for everything below target
:
$ watchexec -i target make test
Call/restart python server.py
when any Python file in the current directory (and all subdirectories) changes:
$ watchexec -e py -r python server.py
Run make
when any file changes, using the .gitignore
file in the current directory to filter:
$ watchexec make
watchexec requires Rust 1.9 or later. You can install it using cargo:
$ cargo install watchexec
$ brew install https://raw.githubusercontent.com/mattgreen/watchexec/master/pkg/brew/watchexec.rb
For now, use the GitHub Releases tab to obtain the binary. PRs for packaging in various distros are welcomed.
Use the GitHub Releases tab to obtain the binary. In the future, I'll look at adding it to Chocolatey.
Rust 1.9 or later is required.