Commit graph

501 commits

Author SHA1 Message Date
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
Félix Saparelli
ac3a4f0717 [pathop] Revert changes adding a time field 2019-01-26 14:40:30 +13:00
Félix Saparelli
b49bf74dd6 [meta] Revert .gitignore change 2019-01-26 09:16:43 +13:00
Félix Saparelli
65db0dfae1 [meta] Revert version bump 2019-01-26 09:16:02 +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
62d24168d6
Merge pull request #102 from Mange/fix-tty-output
Support running commands that allocate their own TTYs (*nix)
2019-01-19 18:48:43 +13:00
Magnus Bergmark
9fd25dd667
Use setsid() instead of setpgid()
This makes it possible to run commands that allocates TTYs and still
capture their output and reap the process on completion.

> setpgid — set process group ID for job control
> setsid — create session and set process group ID

With this in place, the `waitpid` call detects that the process has
exited even if the process allocated a TTY, and is able to unblock the
runner and continue.

Further, the output of the command is also shown in the controlling
terminal.
2019-01-17 13:21:27 +01:00
Félix Saparelli
e0f649d79a Update clap version out of lock file, fixes #76 2018-12-15 14:24:43 +13:00
Félix Saparelli
f6b16813aa Cfg off remaining items for a clean win/mac build
Closes #98
2018-10-05 20:56:06 +13:00
Félix Saparelli
cee1712c4f Link up glob syntax documentation 2018-09-29 13:40:06 +12:00
Félix Saparelli
ba23ed09f6 Fix tests 2018-09-09 16:16:40 +12:00
Félix Saparelli
dc712197c0 1.9.2: revert whitespace changes 2018-09-09 16:03:01 +12:00
Félix Saparelli
0cc3110c7d 1.9.1 2018-09-09 15:01:18 +12:00
Félix Saparelli
4d283313fa Also build deb package 2018-09-09 15:00:51 +12:00
Félix Saparelli
3c1eaa51f7 Add missing impl for StdError 2018-09-09 10:38:07 +12:00
Félix Saparelli
9e09c98f96 Update earliest rust version 2018-09-09 00:03:30 +12: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
9c60148b66
Merge pull request #95 from watchexec/wrap-whitespace-in-args
Wrap whitespace and quotes in command arguments
2018-09-08 19:44:39 +12:00
Félix Saparelli
5461c6ff1b
Merge pull request #74 from jaemk/fix_panic
don't panic on missing folder
2018-09-08 19:43:44 +12:00
Félix Saparelli
718647e386
Merge branch 'master' into fix_panic 2018-09-08 19:43:20 +12:00
Félix Saparelli
68c4973c09
Merge pull request #96 from sumnerevans/patch-1
Added installation instructions for Arch Linux
2018-09-04 10:24:53 +12:00
Sumner Evans
3288c1fad3
Added installation instructions for Arch Linux
watchexec is in the Arch User Repository (AUR). This adds instructions for installing on Arch Linux via the AUR.
2018-09-03 14:08:55 -06:00
Félix Saparelli
7375db5ce9 Also wrap when there’s quotes but no whitespace 2018-08-22 08:17:36 +12:00
Félix Saparelli
21d4080183 Wrap whitespace in arguments
Fixes #82
Fixes #87
2018-08-22 07:15: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
Félix Saparelli
88297f7866 Avoid impossible deploy situation with appveyor 2018-08-21 18:44:00 +12:00
Félix Saparelli
3069f4bb83 Install rustup target for musl 2018-08-21 16:28:42 +12:00
Félix Saparelli
2ac3c2ec5d Enable musl targets on linux (closes #89) 2018-08-21 16:06:58 +12:00
Félix Saparelli
c73b57bcc2 Increase compression level for releases 2018-08-21 15:57:35 +12:00
Félix Saparelli
0480c1f645 Enable travis fast finish 2018-08-21 15:25:43 +12:00
Félix Saparelli
0bb32d5c49 Update minimum version 2018-08-21 15:18:13 +12:00
Félix Saparelli
3842d8c224 Adjust CI 2018-08-21 15:12:00 +12:00
Félix Saparelli
f5d8d134a0 1.9.0 2018-08-19 21:31:46 +12:00
Félix Saparelli
c7f7e18e3b Update man page with WATCHEXEC_*_PATH modifications from #90 2018-08-19 21:14:42 +12:00
Félix Saparelli
f61b7507af Update dependencies 2018-08-19 20:58:47 +12:00
Félix Saparelli
83a3e3b085
Merge pull request #90 from Calinou/update-env-variable-documentation
Update the environment variable documentation in README
2018-08-19 20:45:11 +12:00
Félix Saparelli
750dcb197d
Merge pull request #91 from rasa/patch-1
Add scoop installation instructions to readme
2018-08-19 20:32:47 +12:00
Félix Saparelli
31fdca564a
Merge pull request #93 from tailhook/max_user_watches
Add a warning and fallback on polling mode if limit exceeded
2018-08-19 20:29:44 +12:00
Félix Saparelli
93bd1d9881
Merge pull request #77 from bruceg/master
Fix some default ignore pattern issues
2018-08-19 20:23:49 +12:00
Félix Saparelli
5d58a657ee
Merge pull request #92 from bugabinga/master
Bumps __nix__ to __0.11.0__ in order to support OpenBSD 6.3+.
2018-08-19 20:22:50 +12:00
Paul Colomiets
a2d0a251da Add a warning and fallback on polling mode if limit exceeded
Works only on linux (not sure how error is named on other systems):
```
*** System notification limit is too small, falling back to polling
mode.
*** For better performance increase system limit:
   sysctl fs.inotify.max_user_watches=524288
*** Polling for changes every 1000 ms
```

Fixes #62
2018-08-02 19:36:50 +03:00
Oliver Jan Krylow
8de93a8fd2
Bumps __nix__ to __0.11.0__ in order to support OpenBSD 6.3+. 2018-07-30 21:20:12 +02:00
Ross Smith II
b59eda30dd
Add scoop installation instructions to readme 2018-07-23 21:15:16 -07:00
Hugo Locurcio
a9de2cde44
Update the environment variable documentation in README
This makes the documentation reflect changes from commit 8bd9bb3.
2018-07-23 15:33:47 +02:00
Bruce Guenter
1d8d6595e0 Add .pyo to the Python temporary file ignore
Python, when invoked with the -O option, writes compiled code to .pyo
files instead of .pyc. Add this to the default ignores list.
2018-02-08 14:53:12 -06:00
Bruce Guenter
422546b175 Add Emacs temporary files to the default ignored list
Emacs generates temporary backup files while editing named "#FILENAME#"
and ".#FILENAME". Ignore these by default.
2018-02-08 14:53:11 -06:00
Bruce Guenter
c98bea3118 Fix default ignore for vim temporary files
.swp files are created by vim to store editing state while a file is
open. However, it may also create .swo, .swn, etc files if .swp already
exists. Also, the temporary files are always hidden (start with ".").
Finally, vim temporarily creates .swpx files as well which are caught by
inotify.

This change fixes the *.swp pattern to only match hidden files and to
match the other vim temporary files.
2018-02-08 14:53:08 -06: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