X-Git-Url: https://git.josue.xyz/?a=blobdiff_plain;f=watchexec%2FREADME.md;h=f08dd16d549b11179852c1b1c666630d340b985f;hb=0aa421a04287a0b423f3aa5d64682d0590bf1e18;hp=809e9d948567511c82aef503713bc9d2e83deaf7;hpb=6efe41512f68a9c370180b7d060928ed0986e5f6;p=webi-installers%2F.git diff --git a/watchexec/README.md b/watchexec/README.md index 809e9d9..f08dd16 100644 --- a/watchexec/README.md +++ b/watchexec/README.md @@ -13,22 +13,71 @@ Use the `@beta` tag for pre-releases. ## Cheat Sheet -Watch all JavaScript, CSS and HTML files in the current directory and all -subdirectories for changes, running `make` when a change is detected: +`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: + +```txt +-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. ```bash -watchexec --exts js,css,html make +watchexec -c -- ls -lah ``` -Call `make test` when any file changes in this directory/subdirectory, except -for everything below `target`: +### Advanced Usage Example + +Here's a "kitchen sink" example. ```bash -watchexec -i target make test +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 ``` -Call `ls -la` when any file changes in this directory/subdirectory: +### How to use (Node, Go, Rust, rsync) + +These examples show how you might use this for builds, servers, and publishing +or deploying. ```bash -watchexec -- ls -la +# 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/ ```