mirror of
https://github.com/webinstall/webi-installers.git
synced 2026-03-05 19:00:21 +00:00
title, homepage, tagline
| title | homepage | tagline |
|---|---|---|
| watchexec | https://github.com/watchexec/watchexec | watchexec is a simple, standalone tool that watches a path and runs a command whenever it detects modifications. |
Updating watchexec
webi watchexec@stable
Use the @beta tag for pre-releases.
Cheat Sheet
watchexec runs a given command when any files in watched directories change.
It respects .[git]ignore.
The full --help detailed and very useful. Here's the shortlist of what I find
most useful:
-w, --watch ./src/ watch the given directory
-e, --exts js,html,css watch only the given extensions
-i, --ignore '*.md' do not watch the given pattern
-d, --debounce 5000 the minimum number of milleseconds
to wait between changes
-r, --restart restart the process (for servers and such)
-s, --signal SIGHUP like -r, but with a signal (ex: SIGHUP)
-c, --clear clear the screen between command runs
-W (wait) ignore all changes while the command runs
-- npm start what command to run, which its arguments
--no-ignore disregard both .ignore and .gitignore
--no-vcs-ignore disregard only .gitignore
--no-default-ignore disregard built-in ignore lists
How to use
Example: List the directory when any files change.
watchexec -c -- ls -lah
Advanced Usage Example
Here's a "kitchen sink" example.
watchexec -c -r -s SIGKILL -d 2000 -W --verbose \
-w ./src -w ./lib -w ./server.js \
-e ts,js,sass,css,html \
-i '.git' '*.min.js' -i '*.min.css' \
-- npm run build
How to use (Node, Go, Rust, rsync)
These examples show how you might use this for builds, servers, and publishing or deploying.
# Node / npm
watchexec -W -- npm run build
watchexec -r -- npm start
# Golang
watchexec -- go build .
watchexec -r -- go run .
# Rust
watchexec -- cargo build --bin
watchexec -r -- cargo run --bin
# rsync (local copy)
watchexec -- rsync -avhP ./ ./srv/MY_PROJECT/
# rsync (remote publish)
watchexec -- rsync -avhP ./ app@example.com:~/srv/MY_PROJECT/