Commit graph

96 commits

Author SHA1 Message Date
Félix Saparelli
e33fd8f5b5
Remove borrowing that was introduced in previous release 2019-10-28 22:32:08 +13:00
Félix Saparelli
6c653e8e52
Return owned Args from Handler instead of borrowed 2019-10-28 18:55:39 +13:00
Félix Saparelli
6f473bcd87 [meta] Run formatter 2019-01-26 15:15:27 +13:00
Félix Saparelli
aae5a216b0 [api] Make watchexec take a Handler rather than a callback
Instead of special-casing the callback, which is the path least-taken,
switch the internals to a Handler model, where the default behaviour is
an implementation of a Handler, and external callers can implement their
own Handlers and pass them in.

While doing so, change all unwraps in run::run to returning Errs, and
expand the watchexec Error enum to accommodate. That should make it
easier to use as a library.

Also, differentiate between "manual" and "on update" runs. For now the
only manual run is the initial run, but this paves the way for e.g.
keyboard- or signal- triggered runs.
2019-01-26 14:45:13 +13:00
David Ziegler
7b3daeef9c Major changes for c bindings integration as third party crate (see project: github/InfinityMod/watchexec_c).
Changed version to 1.9.3 for third party crate compatibility detection.
2019-01-23 18:56:09 +01:00
Félix Saparelli
2c5c145042 Extract errors into one thing and return a result more often 2018-09-08 23:51:44 +12:00
Félix Saparelli
a6163cc599 Formatting 2018-09-08 20:08:36 +12:00
Félix Saparelli
718647e386
Merge branch 'master' into fix_panic 2018-09-08 19:43:20 +12:00
Félix Saparelli
39a4a52f80 Restore 1.20 compatibility 2018-08-22 07:14:55 +12:00
Félix Saparelli
ef0e6df8d4 Remove duplication between main/lib files 2018-08-22 00:10:57 +12:00
James Kominick
31b5e56959 don't panic on missing folder
issue #71
- Add some basic error handling
- Convert missing folder panic to error
2017-12-13 23:10:12 -05:00
James Kominick
8bd9bb3c25 detailed update information
issue #59
- Keep track of `notify::op::Op`s associated with each updated path
- Collect paths into `notify::op::Op` categories and pass them on as
  environment vars
- Set a COMMON_PATH and use relative paths if more than one unique
  path was touched
2017-09-09 13:55:44 -04:00
Lilian A. Moraru
e39256cfb2 Update dependencies and other small improvements 2017-08-26 22:07:06 +03:00
Félix Saparelli
f5bf4ef98b
Add library interface 2017-04-25 11:31:50 +12:00
Chris Aumann
ee5e93e6af Add support for --no-shell option 2017-04-10 00:19:58 +02:00
Chris Aumann
264ec282d6 Use a tuple to match scenarios 2017-04-02 21:28:00 +02:00
Chris Aumann
627f828b3c Rename wait_process() to signal_process() 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
a2f6b0013f Add windows compatibility 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
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
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
ebcb5976ba Use globset for ignore matching; closes #14 and #23 2017-01-27 13:00:13 -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
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
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
2d2a8cb079 rustfmt 2016-11-09 17:25:52 -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
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
82713fc906 Fix watching multiple dirs with differing roots 2016-10-29 10:24:31 -04:00
Matt Green
ed865d9039 Linux: fix logspam from inotify's notification volume 2016-10-28 08:58:15 -04:00