mirror of
https://github.com/webinstall/webi-installers.git
synced 2026-04-07 02:46:50 +00:00
Updated install.sh for bat, fd, gh, goreleaser, lsd, rg, sd, watchexec, and zoxide to extract and install shell completions (bash, fish, zsh) and man pages from their release archives. Completions go to standard XDG locations under the versioned opt directory. All moves use 2>/dev/null fallbacks for older versions that don't include completions.
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. |
To update or switch versions, run webi watchexec@stable (or @v1.17, @beta,
etc).
Files
These are the files / directories that are created and/or modified with this install:
~/.config/envman/PATH.env
~/.local/bin/watchexec
Cheat Sheet
watchexec runs a given command when any files in watched directories change.
It respects .[git]ignore.
Here's the shortlist of options we've found most useful:
-w, --watch ./src/ watch the given directory
-e, --exts js,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, etc)
-s, --signal SIGHUP like -r, but with a signal (ex: SIGHUP)
-c, --clear clear the screen between command runs
-W (wait) ignore all changes as the command runs
-- npm start what command to run, with 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 ./server.js \
-e js,css,html \
-i '*.md' -i 'package-lock.json' \
-- 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/