diff options
-rw-r--r-- | README.md | 37 | ||||
-rw-r--r-- | main.go | 16 |
2 files changed, 44 insertions, 9 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..7dd4fb4 --- /dev/null +++ b/README.md @@ -0,0 +1,37 @@ +# Installation +```sh +git clone https://git.spacehb.net/wbr +cd wbr +go install . +``` + +# Example +Run `./build.sh` whenever a file ending with '.c' or '.h' is modified: +```sh +wbr -r './build.sh' -s '.c,.h' +``` +Run a c file from the `src/` directory whenever it is modified: +```sh +wbr -b 'tcc -run' -p src/ +``` +Compile a c file with `common.c` and run it. +```sh +wbr -b 'gcc -Wall -Werror common.c' -r './a.out' -s '.c' +``` + +# Usage +```txt +Usage of wbr: + -b string + Command to run for building, it will pass the file modified as argument to it + -p string + Path to watch for files (default ".") + -r string + Command for running after build + -s string + Filter watched files by suffix, specify multiple by separating with ',' + -v Show wbr version +``` + +## Pro tip: +- use `set -x` in your build scripts @@ -1,6 +1,4 @@ -// wbr will run a build command and a run command on file system changes. This is so you can -// build&run on save. -// You specify a build command and run command as flags and optionally you can filter by extension. +// Run a command whenever a file is modified. package main @@ -29,8 +27,8 @@ var ( BuildCommand []string // Command run after build RunCommand []string - // Command will only run on files that have the Extensions extension - Extensions []string + // Command will only run on files that have the Suffixes extension + Suffixes []string // Layout for timestamp of command DateLayout string = "15:04:05" // Version tag for wbr @@ -50,7 +48,7 @@ func GetVersion() string { func CompileRun(fileName string) { found := false - for _, Ext := range Extensions { + for _, Ext := range Suffixes { if strings.HasSuffix(fileName, Ext) { found = true break @@ -130,9 +128,9 @@ func main() { } defer watcher.Close() - bc := flag.String("b", "", "Command to run for building") + bc := flag.String("b", "", "Command to run for building, it will pass the file modified as argument to it") rc := flag.String("r", "", "Command for running after build") - e := flag.String("e", "", "Filter watched files by suffix") + s := flag.String("s", "", "Filter watched files by suffix, specify multiple by separating with ','") p := flag.String("p", ".", "Path to watch for files") v := flag.Bool("v", false, "Show wbr version") flag.Parse() @@ -144,7 +142,7 @@ func main() { BuildCommand = strings.Split(*bc, " ") RunCommand = strings.Split(*rc, " ") - Extensions = strings.Split(*e, ",") + Suffixes = strings.Split(*s, ",") Path = *p fmt.Printf("[%s watching '%s'%s]\n", Cyan, Path, Reset) |