Matt Green
fe0d5243bd
Remove /.* ignore pattern (see #45 )
2017-04-25 16:48:44 -04:00
Félix Saparelli
f5bf4ef98b
Add library interface
2017-04-25 11:31:50 +12:00
Chris Aumann
f88f1b36c3
Refactor command assembly
...
Kudos to https://www.reddit.com/user/burntsushi from the /r/rust community!
See: https://www.reddit.com/r/rust/comments/64ic0q/idiomatic_string_processing/
2017-04-10 14:13:27 +02:00
Chris Aumann
a395ed84cd
Remove useless format!()
...
This was a hint by `cargo clippy`
2017-04-10 00:20:57 +02:00
Chris Aumann
df72aaf977
Use if-else statements instead of boolean match
...
This was a hint by `cargo clippy`
2017-04-10 00:20:57 +02:00
Chris Aumann
780b54b34e
Port --no-shell to Windows
2017-04-10 00:20:57 +02:00
Chris Aumann
5a7ccf759b
Adapt spawn() test for Unix
2017-04-10 00:20:27 +02:00
Chris Aumann
ee5e93e6af
Add support for --no-shell option
2017-04-10 00:19:58 +02:00
Chris Aumann
5b486e2ae6
Remove deprecated comment (before_exec)
2017-04-06 22:54:02 +02:00
Chris Aumann
264ec282d6
Use a tuple to match scenarios
2017-04-02 21:28:00 +02:00
Chris Aumann
4763de3790
Re-add --kill flag for compatibility
...
--kill translates to --signal SIGKILL
2017-04-02 21:21:30 +02:00
Chris Aumann
627f828b3c
Rename wait_process() to signal_process()
2017-04-02 21:21:30 +02:00
Chris Aumann
d5da94fcaf
Add check for conflicting --signal and --postpone arguments
2017-04-02 21:21:30 +02:00
Chris Aumann
c98d0e6cfd
Decouple --restart and --signal, so they both make sense
...
This change takes account of the following four use cases:
1. Make sure the previous run was ended, then run the command again (default)
2. Just send a specified signal to the child, do nothing more (--signal given)
3. Send SIGTERM to the child, wait for it to exit, then run the command again (--restart given)
4. Send a specified signal to the child, wait for it to exit, then run the command again (--restart and --signal given)
2017-04-02 21:21:30 +02:00
Chris Aumann
56ddfcbaee
Apply rustfmt-0.8.1
2017-04-02 21:21:30 +02:00
Chris Aumann
3a5ff290d5
Use a more idiomatic way to set --signal
2017-04-02 21:19:53 +02:00
Chris Aumann
a2f6b0013f
Add windows compatibility
2017-04-02 21:19:53 +02:00
Chris Aumann
0a445c9f76
Move convert_to_libc() method to signal.rs
2017-04-02 21:19:53 +02:00
Chris Aumann
4adde457dd
Actually use signal specified in --signal option
2017-04-02 21:19:53 +02:00
Chris Aumann
382981e22d
Add more signals to SigSet mask
2017-04-02 21:19:53 +02:00
Chris Aumann
eebe966b50
Remove deprecated signal functions
2017-04-02 21:19:53 +02:00
Chris Aumann
24e9b0c1c5
Migrate to nix::sys::signal::Signal
2017-04-02 21:19:52 +02:00
Chris Aumann
68caf04269
First commit to add a generic --signal flag
2017-04-02 21:19:52 +02:00
Chris Aumann
f62c3724b2
Use before_exec as process_exec landed in stable
2017-03-24 17:11:24 +01:00
Matt Green
125e7eb7c8
rustfmt & clippy fixes
2017-02-04 16:26:59 -05:00
Matt Green
e16a6b3a24
Support watching multiple paths
2017-02-04 16:18:02 -05:00
Matt Green
53c1f39919
Load + handle multiple .gitignore files in project dir
2017-02-04 14:53:27 -05:00
Matt Green
b2b0a60ca5
Add -1 option for integration testing, closes #35
2017-01-27 15:27:44 -05:00
Matt Green
0d5de7c4da
rustfmt
2017-01-27 13:13:37 -05:00
Matt Green
ebcb5976ba
Use globset for ignore matching; closes #14 and #23
2017-01-27 13:00:13 -05:00
Matt Green
fd2d6e364a
Add -k to support sending SIGKILL
2017-01-16 14:18:38 -05:00
Matt Green
6b7351d45b
Remove kill/wait tests as process handling is async now
2016-12-20 13:42:39 -05:00
Matt Green
dddc1e8886
Fix Windows warnings
2016-12-20 13:25:08 -05:00
Matt Green
09448cd91e
Fix reap() hanging when child processes are still running
2016-12-20 13:21:24 -05:00
Matt Green
171132a722
rustfmt & clippy fixes
2016-12-20 12:20:21 -05:00
Matt Green
b2c809c87a
SIGCHLD handling
2016-12-20 11:44:18 -05:00
Matt Green
a925cb356a
Fix sending SIGKILL by default when restarting processes
2016-12-19 15:36:59 -05:00
Matt Green
9c65e816da
Add -k option to send SIGKILL instead of SIGTERM; closes #31
2016-12-19 11:37:20 -05:00
Matt Green
787c31040c
Remask received signal after re-raising it
2016-12-15 09:41:10 -05:00
Matt Green
154c23a5a4
Propagate SIGTSTP/SIGCONT to children
2016-12-14 20:19:58 -05:00
Matt Green
54baf4e384
Add process::spawn function
2016-11-23 12:59:56 -05:00
Matt Green
f768721ca3
Remove --watch option, always watch cwd
2016-11-17 08:45:55 -05:00
Matt Green
0e9dafffc8
Unix: pipe read/write handles EINTR
2016-11-16 20:18:46 -05:00
Matt Green
12557d11bf
Fix setpgid() racing killpg()/waitpid() in tests
2016-11-16 08:55:15 -05:00
Matt Green
e4557e462b
Wait for child process, not any child process in group
2016-11-15 22:43:51 -05:00
Matt Green
5b2858e6d6
Die quietly if exec() fails
2016-11-15 17:04:15 -05:00
Matt Green
3bf3086a29
Replace before_exec with fork/exec, removing Rust nightly requirement
2016-11-15 16:55:29 -05:00
Matt Green
bdce629782
Drop size optimizations that require nightly builds
2016-11-13 18:34:23 -05:00
Matt Green
0ef334e2a1
Size optimizations
2016-11-10 19:43:13 -05:00
Matt Green
68960fec9a
Style fixes
2016-11-09 17:48:38 -05:00
Matt Green
48b0def80d
Fix warnings in tests
2016-11-09 17:37:35 -05:00
Matt Green
2d2a8cb079
rustfmt
2016-11-09 17:25:52 -05:00
Matt Green
707fa2e952
Windows compilation fixes
2016-11-09 17:20:13 -05:00
Matt Green
6523f6edf5
Cleanup, initial Windows implementation of interrupt handler
2016-11-09 17:00:24 -05:00
Matt Green
cf0a98b7a5
Remove use of select!
2016-11-09 09:44:00 -05:00
Matt Green
0d85d8275a
Fix gitignore searching not terminating in some cases; closes #25
2016-11-08 17:52:29 -05:00
David Raifaizen
dfe9dcc338
Refactoring get_longest_common_path to be simpler and more efficient
2016-11-05 08:42:45 -04:00
Matt Green
a2e66f179c
Upgrade to notify 3; closes #22
2016-11-03 17:20:43 -04:00
Matt Green
06bcef5853
Use globset in NotificationFilter; closes #24
2016-11-03 17:04:39 -04:00
Matt Green
8f916c495f
Apply clippy suggested fixes
2016-10-30 12:37:34 -04:00
Matt Green
69eedd4cc5
rustfmt fixes
2016-10-30 12:28:54 -04:00
Matt Green
d859b4b70e
Drop threadpool dep (was spawning threads over and over)
2016-10-30 12:28:11 -04:00
Matt Green
2d7715f8d7
Merge pull request #20 from craftytrickster/common-prefix
...
Creating method to update the watch_exec variable with the greatest c…
2016-10-30 10:06:40 -04:00
David Raifaizen
8713140a4e
Creating method to update the watch_exec variable with the greatest common path found among the changed filepaths
2016-10-29 14:39:48 -04:00
Matt Green
85f0a4aaaf
Make --run-initially default, add --postpone flag to disable
2016-10-29 10:43:45 -04:00
Matt Green
82713fc906
Fix watching multiple dirs with differing roots
2016-10-29 10:24:31 -04:00
Matt Green
9652aeb837
Fix dotted dir default filter to only fire on dirs
2016-10-29 10:21:04 -04:00
Matt Green
a182fda43f
Add NotificationFilter tests
2016-10-29 09:37:50 -04:00
Matt Green
ed865d9039
Linux: fix logspam from inotify's notification volume
2016-10-28 08:58:15 -04:00
Matt Green
672fd469a9
Reorder new()
2016-10-28 08:46:35 -04:00
Matt Green
4370d41e71
Make NotificationFilter immutable
2016-10-27 08:27:16 -04:00
Matt Green
fdc31d4b02
Fix test
2016-10-26 16:29:34 -04:00
Matt Green
e26eff226c
Process module improvements, use later nix
2016-10-26 16:20:44 -04:00
Matt Green
d14ccaaa1a
Fix Windows warnings
2016-10-26 11:52:00 -04:00
Matt Green
f04083a21d
Use Process & ProcessReaper to handle async process waiting
2016-10-26 11:02:04 -04:00
Matt Green
1cc4d92345
PollWatcher sometimes reports directories with new/deleted files
2016-10-26 11:02:04 -04:00
Matt Green
da46e3ffb5
Fix unused import warnings
2016-10-25 07:27:07 -04:00
Matt Green
f7771a4480
Mark process tests as Unix-only for now
2016-10-25 07:19:41 -04:00
Matt Green
50e583ca8c
Some tests for the Runner module
2016-10-25 07:05:53 -04:00
Matt Green
3d3915844a
Improve runner API
2016-10-25 05:47:53 -04:00
Matt Green
918fd668a5
Polishing up process group handling and handling of unresponsive child processes
2016-10-24 21:49:12 -04:00
Matt Green
d01da72e0b
Forgot a #[cfg(unix)] marker on install()
2016-10-24 09:55:00 -04:00
Matt Green
0e0d14b475
Wait for FS activity to stop before proceeding; use interrupt handling
2016-10-24 09:53:06 -04:00
Matt Green
d10b790c35
Use rustfmt to fix outstanding style issues
2016-10-23 20:12:48 -04:00
Matt Green
6a812d31b4
Extract CLI arg handling to args module
2016-10-23 20:07:48 -04:00
Matt Green
7b766b1f98
Drop signal crate in favor of nix
2016-10-23 15:15:28 -04:00
Matt Green
f0d4a14e41
Fix Windows bugs relating to mutability
2016-10-22 17:05:43 -04:00
Matt Green
83b91e51d0
Refactor Runner a bit; add Drop impl for eventual use
2016-10-22 16:54:16 -04:00
Matt Green
e67751bb56
Fix build errors on Windows
2016-10-22 15:51:17 -04:00
Matt Green
865b0b7d90
WIP: Add interrupt_handler module
2016-10-22 15:37:03 -04:00
Matt Green
1582240dbc
Fix silly error
2016-10-20 14:30:05 -04:00
Matt Green
7d8f909220
Add watcher module, back to requiring nightly builds
2016-10-20 14:27:11 -04:00
Matt Green
03775b61ce
No need to use before_exec() to call setpgid()
2016-10-20 12:09:51 -04:00
Matt Green
b16cbec3ee
Fix compile error on Windows
2016-10-20 11:50:25 -04:00
Matt Green
f3c6df8845
Launch child processes in new process group
2016-10-20 11:38:51 -04:00
Matt Green
0a08d3f8ef
Fix polling always being used
2016-10-20 10:07:55 -04:00
Matt Green
90d6659141
Add --force-poll option; closes #7
2016-10-19 20:19:01 -04:00
Matt Green
a75dd49114
Set $WATCHEXEC_UPDATED_PATH to first changed path in child process;
...
closes #11
2016-10-19 19:40:50 -04:00
Matt Green
249e5a84e4
Search for .gitignore files in parent dirs; closes #10
2016-10-19 18:54:20 -04:00
Matt Green
f1597cc1a6
Merge pull request #13 from palfrey/12-run-initially
...
Option to run command initially, before first file change
2016-10-18 18:05:14 -04:00
Tom Parker
7eabee9f40
Initial command run is outside the loop!
2016-10-18 22:36:12 +01:00
Tom Parker
6887552aab
Option to run command initially, before first file change ( fixes #12 )
2016-10-18 22:11:05 +01:00
Atmajeet Kaur
f7c628c7e1
some clippy-suggested improvements
2016-10-18 15:39:40 +02:00
Garrett Squire
59724589ea
use cfg attributes instead of macro for OS specific functionality
2016-10-17 10:35:15 -07:00
Matt Green
94311c25bb
Ignore .DS_Store files by default
2016-10-13 20:23:38 -04:00
Matt Green
536613852f
Enhance debug output; rename option back to debug
2016-10-13 20:21:29 -04:00
Matt Green
392aea8ca3
Use crate_version! macro
2016-10-13 19:57:21 -04:00
Matt Green
b6831c4d30
Cleanups/more logging
2016-10-13 19:47:04 -04:00
Matt Green
8923bc1e1c
Use log & env_logger crates
2016-10-13 17:59:46 -04:00
Matt Green
20fe9169b4
Add --no-vcs-ignore flag
2016-10-12 09:43:22 -04:00
Matt Green
d7a62ed30a
Canonicalize cwd; fixes gitignore patterns not matching on Windows
2016-10-12 09:22:45 -04:00
Matt Green
9836882e71
Refine gitignore module
2016-10-12 09:06:01 -04:00
Matt Green
f20d02a7f8
Support for gitignore files
2016-10-11 22:43:53 -04:00
Matt Green
db677c77ec
Extract command invocation to runner module
2016-10-09 14:07:23 -04:00
Matt Green
c990c9c4d4
Canonicalize watched paths
2016-09-27 09:43:28 -04:00
Matt Green
00bb3eed17
Platform-agnostic dotted dir ignore
2016-09-24 14:06:51 -04:00
Matt Green
406e137cef
Add -r option to restart commands on subsequent events; closes #4
2016-09-24 13:52:54 -04:00
Matt Green
6072b353b9
Remove unnecessary clone
2016-09-23 14:04:19 -06:00
Matt Green
b08880d4e4
Return unit from add_* fns
2016-09-23 14:00:26 -06:00
Matt Green
0892da59e2
Rename Filter to NotificationFilter
2016-09-23 13:52:50 -06:00
Matt Green
0747d643c1
Improved nomenclature
2016-09-23 13:49:55 -06:00
Matt Green
bb28637990
Rename -d to -v; support watching multiple paths via --watch option
2016-09-23 13:38:26 -06:00
Matt Green
d087092f64
Infer path, add -e option to monitor files based on file extensions
2016-09-23 11:59:57 -06:00
Matt Green
9927e1018e
Fix ignoring of dotted dirs
2016-09-23 09:59:54 -06:00
Matt Green
553687b315
Add filter/ignore options
2016-09-21 15:02:20 -06:00
Matt Green
e01c45d6f5
Rename to watchexec
2016-09-18 16:42:11 -04:00
Matt Green
5b97663990
Hacky .gitignore handling
2016-09-14 16:50:14 -04:00
Matt Green
fdc6564bb1
Ignore paths starting with a dot
2016-09-14 16:11:35 -04:00
Matt Green
08d21a6dad
Simple screen clear & debounce
2016-09-14 15:43:58 -04:00
Matt Green
37f0b062a5
Use notify 2.6.3
2016-09-14 14:19:05 -04:00
Matt Green
5cf5ce73ca
Initial commit
2016-09-14 09:30:59 -04:00