Executes commands in response to file modifications
Go to file
Félix Saparelli e6c7da3635 Add rpm support with cargo-generate-rpm 2021-07-10 03:48:12 +12:00
.github/workflows Add rpm support with cargo-generate-rpm 2021-07-10 03:48:12 +12:00
bin Update help snapshot version when releasing 2021-05-10 23:10:55 +12:00
cli Add rpm support with cargo-generate-rpm 2021-07-10 03:48:12 +12:00
completions Drop debounce to 150ms (#168) 2021-04-11 06:05:28 +12:00
doc Add logo 2021-04-26 23:59:43 +12:00
lib Remove stub main.rs from library 2021-07-10 03:48:12 +12:00
test Remask received signal after re-raising it 2016-12-15 09:41:10 -05:00
.editorconfig Remove appveyor 2019-10-28 13:11:33 +13:00
.gitignore Add rpm support with cargo-generate-rpm 2021-07-10 03:48:12 +12:00
CONTRIBUTING.md Split the versioning of the lib and cli (in theory) 2021-05-01 04:22:33 +12:00
Cargo.lock cli: v1.16.1 2021-05-22 20:05:57 +12:00
Cargo.toml Turn off panic=abort 2021-05-09 16:29:50 +12:00
LICENSE Create LICENSE 2016-09-18 16:43:26 -04:00
README.md Set website as website 2021-07-10 03:48:12 +12:00

README.md

CI status

Watchexec

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:

  • Automatically run unit tests
  • Run linters/syntax checkers

Features

  • Simple invocation and use, does not require a cryptic command line involving xargs
  • Runs on OS X, Linux, and Windows
  • Monitors current directory and all subdirectories for changes
  • Coalesces multiple filesystem events into one, for editors that use swap/backup files during saving
  • Loads .gitignore and .ignore files
  • Uses process groups to keep hold of forking programs
  • Provides the paths that changed in environment variables
  • Does not require a language runtime, not tied to any particular language or ecosystem
  • And more!

Quick start

Watch all JavaScript, CSS and HTML files in the current directory and all subdirectories for changes, running npm run build when a change is detected:

$ watchexec -e js,css,html npm run build

Call/restart python server.py when any Python file in the current directory (and all subdirectories) changes:

$ watchexec -r -e py -- python server.py

More usage examples: in the CLI README!

Install

All options in detail: in the CLI README.

Extend

  • watchexec library: to create more specialised watchexec-powered tools! such as:
  • clearscreen: to clear the (terminal) screen on every platform.
  • notify: to respond to file modifications (third-party),
  • globset: to match globs (third-party).