[Pkg-rust-maintainers] Bug#946546: RFP: watchexec -- Executes commands in response to file modifications

Antoine Beaupre anarcat at debian.org
Tue Dec 10 17:47:56 GMT 2019


Package: wnpp
Severity: wishlist

* Package name    : watchexec
  Version         : 1.12.0
  Upstream Author : FĂ©lix Saparelli
* URL             : https://github.com/watchexec/watchexec
* License         : Apache-2
  Programming Lang: Rust
  Description     : Executes commands in response to file modifications

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
 * Monitors current directory and all subdirectories for changes
 * Coalesces multiple filesystem events into one, for editors that use
   swap/backup files during saving
 * By default, uses .gitignore to determine which files to ignore notifications for
 * Support for watching files with a specific extension
 * Support for filtering/ignoring events based on glob patterns
 * Launches child processes in a new process group
 * Optionally clears screen between executions
 * Optionally restarts the command with every modification (good for servers)
 * Does not require a language runtime

Anti-Features

 * Not tied to any particular language or ecosystem
 * Does not require a cryptic command line involving xargs

====

This package is one of *many* file monitoring tools. I have made an
inventory here:

https://anarc.at/blog/2019-11-20-file-monitoring-tools/

... yet they all suffer from significant complexity limitations and
cryptic commandline interfaces. Even watchman, a recent addition to
the frey, is difficult to use, see for example:

https://github.com/facebook/watchman/issues/769
https://github.com/facebook/watchman/issues/770

In comparison, watchexec seems much simpler to use and ticks all the
boxes. It also has unique features like the capacity to send signal to
processes and "wait for idle" which watchman also lacks support for.

I have no experience with Rust packaging and would love if someone
else could give a hand.


More information about the Pkg-rust-maintainers mailing list