#watchexec #simpler #smaller

app watchexec-simple

An alternative to watchexec

3 unstable releases

0.2.0 Oct 24, 2023
0.1.1 Jul 3, 2023
0.1.0 May 26, 2022

#6 in #smaller

MIT license

19KB
411 lines

Usage

watchexec-simple is a simpler alternative for the existing watchexec project. It doesn't implement nearly all the features that the full watchexec project provides. However, it provides the core functionality in a codebase that is much smaller (at last count, 5%). It is built on the same notify library, itself built by the same authors as watchexec. watchexec-simple installs to the same binary name as the watchexec project.

Here is a simple example of using watchexec-simple:

watchexec -- cargo run

Comparison to watchexec

When possible, watchexec-simple relies on the same option names as watchexec. The key differences are:

  1. For watchexec-simple, positional arguments are watched paths, and -- is required and used to separate the command. For watchexec, positional arguments are the command, and each path requires a -w to be passed in. For example:
# watchexec-simple
watchexec src/ data/ .env -- cargo run

# watchexec
watchexec -w src/ -w data/ -w .env cargo run
  1. By default, watchexec-simple restarts the process, even if it is actively running. For watchexec, the user is required to pass the -r option. Example:
# watchexec-simple
watchexec -- cargo run

# watchexec
watchexec -r cargo run
  1. watchexec-simple does not run the command in a shell. If you want a shell, use something like: watchexec -- /bin/bash -c 'command'. By default, watchexec runs all commands in a shell.

Installation

Not currently published to cargo. Git clone it and then install from local.

git clone https://github.com/kurtbuilds/watchexec-simple
cd watchexec-simple
cargo install --path .

Dependencies

~11–22MB
~325K SLoC