watchexec

Build Status Build status Crates.io status

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:

Features

Anti-Features

Usage Examples

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

Installation

Cargo

watchexec requires Rust 1.9 or later. You can install it using cargo:

$ cargo install watchexec

OS X with Homebrew

$ brew install https://raw.githubusercontent.com/mattgreen/watchexec/master/pkg/brew/watchexec.rb

Linux

For now, use the GitHub Releases tab to obtain the binary. PRs for packaging in various distros are welcomed.

Windows

Use the GitHub Releases tab to obtain the binary. In the future, I'll look at adding it to Chocolatey.

Building

Rust 1.9 or later is required.

Credits