forked from quackingduck/wach
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
97 lines (65 loc) · 2.79 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
`8.`888b ,8' .8. ,o888888o. 8 8888 8
`8.`888b ,8' .888. 8888 `88. 8 8888 8
`8.`888b ,8' :88888. ,8 8888 `8. 8 8888 8
`8.`888b .b ,8' . `88888. 88 8888 8 8888 8
`8.`888b 88b ,8' .8. `88888. 88 8888 8 8888 8
`8.`888b .`888b,8' .8`8. `88888. 88 8888 8 8888 8
`8.`888b8.`8888' .8' `8. `88888. 88 8888 8 8888888888888
`8.`888`8.`88' .8' `8. `88888.`8 8888 .8' 8 8888 8
`8.`8' `8,`' .888888888. `88888. 8888 ,88' 8 8888 8
`8.` `8' .8' `8. `88888. `8888888P' 8 8888 8
"watch changes"
Watch for changes to files within the current directory and run a command
when they occur.
Wach is really fast, the command is run as soon as the file changes, no
polling delay.
Comes with two executables: `wach` and `wachs`.
The `wach` utility will run any command (or inline shell script) whenever
files in the current directory are updated.
The `wachs` (there's an "s" on the end) utility does the same thing but for
commands that launch a long running process like a web server. It'll kill
the current process and launch a new one.
Requirements
Only runs on OS X >=10.7 (Lion and up)
Install
npm install wach
Examples
# Run `make` every time a file in the current directory is updated/added
wach make
# Compile and run on every change
wach "gcc hello.c && ./a.out"
# Only watch for changes to coffee files, compile the one that changed
wach -o *.coffee, coffee -c {}
# Run the tests every time a ruby file changes
TEST_DIR=generators wach -o **/*.rb, bundle exec rake test
# Restart a node app any time a js file changes
wachs -o *.js, node server.js
Node API
wach = require('wach');
wach('.', function(path) {
return console.log("something happened to " + path + "!");
})
Contributing
Patches welcome. Especially if you'd like to re-write this in plain
JavaScript. Just fork and make a pull request
Other similar projects:
Patrick Mueller's wr
https://github.com/pmuellr/wr
steakout
http://michael-mccracken.net/software/stakeout.tgz
steakout.rb
http://www.pragmaticautomation.com/cgi-bin/pragauto.cgi/Monitor/StakingOutFileChanges.rdoc
the --watch flag for coffeescript
http://jashkenas.github.com/coffee-script/#usage
unix watch
http://en.wikipedia.org/wiki/Watch_(Unix)
TJ Holowaychuk's watch
https://github.com/visionmedia/watch
Isaac Z. Schlueter's node-supervisor
https://github.com/isaacs/node-supervisor
David Trejo's run.js
https://github.com/DTrejo/run.js
Gabriel Gironda's kqfm
https://github.com/gabrielg/kqfm
Mark Bao's watchdir
https://github.com/markbao/watchdir