Commit Graph

214 Commits

Author SHA1 Message Date
Félix Saparelli be6c29c821
Merge pull request #147 from Chris-Nicholls/gitignore 2020-06-04 19:29:53 +12:00
Martin Sehnoutka f8f6c0ac5a Mention time units explicitly in CLI interface
The force-poll flag does not mention time units as opposed to the
debounce flag and to make it even more confusing, the comment in the
code says something else than the output:
*** Polling for changes every 2000 ms

This patch makes it clear what units are used.
2020-04-18 17:15:46 +12:00
Chris Nicholls 2d29a7d7c4 Look for .ignore files in subfolders of watched paths 2020-03-09 10:59:02 +00:00
Chris Nicholls 0175e071e1 Include .gitignores in subdirectories 2020-03-06 10:28:29 +00:00
Félix Saparelli 5843deb573
Allow clippy::too_many_lines 2019-11-19 19:42:20 +13:00
daubaris 50fa771c41 Adding missed details 2019-11-19 01:15:07 +13:00
daubaris 9a204241f7 Satisfying requested changes 2019-11-19 01:15:07 +13:00
daubaris 7ad8e78a34 Rename the command from 'watch-idle' to 'watch-when-idle' 2019-11-19 01:15:07 +13:00
daubaris de5ed1c2bd #123 --watch-idle flag implementation 2019-11-19 01:15:07 +13:00
Félix Saparelli 90b9a85c0c
Swap out deprecated mem::uninitialized() 2019-11-19 00:38:58 +13:00
Thomas Etter 6e64a2c152 update the test to make sure that files matching part of the ignore are not excluded 2019-11-12 23:36:49 +13:00
Thomas Etter 1c6f5fab89 fix the ignore path handling to match the README by ignoring everything
below a directory
2019-11-12 23:36:49 +13:00
Félix Saparelli 798fd3c0bd
Fix verb tense on help message for `--force-poll` 2019-11-11 09:51:06 +13:00
Félix Saparelli e33fd8f5b5
Remove borrowing that was introduced in previous release 2019-10-28 22:32:08 +13:00
Félix Saparelli bb02d84661
Re-export useful things 2019-10-28 18:56:06 +13:00
Félix Saparelli 6c653e8e52
Return owned Args from Handler instead of borrowed 2019-10-28 18:55:39 +13:00
Wayne Warren 720ff44b71 #133: leave Handler initialization to watch caller 2019-10-28 18:17:25 +13:00
Félix Saparelli a1fbad0180
Fix last clippy lints 2019-10-28 13:48:57 +13:00
Félix Saparelli f7e1639ed1
Upgrade to winapi 0.3 2019-10-28 12:17:00 +13:00
Félix Saparelli e563ae8fc1
Enable anti-unwrap lints 2019-10-28 01:12:10 +13:00
Félix Saparelli 5f7123ecbe
Lint tests too 2019-10-28 00:37:24 +13:00
Félix Saparelli a3c5bd7201
Run formatter 2019-10-28 00:31:52 +13:00
Félix Saparelli d47419e385
Forbid a whole lot more clippy stuff 2019-10-28 00:31:26 +13:00
Félix Saparelli b842c149b6
Use Rust 2018 2019-10-27 23:58:00 +13:00
Félix Saparelli f56e838fb9
Lints and clippys 2019-10-27 23:47:35 +13:00
Félix Saparelli 6b028cb649
Add builder for Args 2019-10-27 23:29:58 +13:00
Félix Saparelli 8e84eb6b04
Add semver policy statement 2019-10-27 22:54:44 +13:00
Josh Soref 0d4a2270ec spelling: supporting 2019-10-14 11:09:51 +13:00
Ryan James Spencer e90bbcb9bd Support a dedicated ignore file
ref. https://github.com/passcod/cargo-watch/issues/127

This adds support for a dedicated ignore file by the name of `.ignore` a
la `fd`, `ripgrep`, et. al.

This purely just mimics what `Gitignore` is doing except it doesn't
ignore `.git` directories. There might be more I need to tweak and the
interface might be too obtuse, but this is a first pass.

I've also added a `--no-ignore` flag which ignores both `.gitignore` and
the dedicated `.ignore`. It might make sense to add a specific flag that
ignores `.ignore` but respects `.gitignore` to support the old
behaviour, but I wasn't sure what to name it.
2019-10-12 14:13:57 +13:00
Igor Gnatenko 22f5408bc0 Drop mktemp dependency (#115)
It is not used and depends on very very old version of uuid.

Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
2019-03-12 00:49:17 +13:00
SpiralP dbc52e012e [run] Always canonicalize input paths (#113)
A client may pass non-canonicalized paths into `watch`, and these are therefore not matched against the filters correctly. Thus, some events could call a Handler's `on_update` method even when an ignored file was changed.

See repro: https://github.com/SpiralP/rust-cargo-watch-test

This bug was introduced in aae5a216b0.
2019-03-04 11:40:35 +13:00
Félix Saparelli 4918b123d9 [run] Restore clearing of the screen on initial run 2019-02-18 21:26:21 +13:00
Josh Gao 6342f86c10 [errors] Fix infinite recursion in fmt::Display for Error (#111) 2019-02-15 17:02:07 +13:00
Félix Saparelli 8eb90738de [run] Move "once" logic to be entirely within handler 2019-01-27 15:51:49 +13:00
Félix Saparelli 4ceb70f6bf [docs] Fix logic inversion in on_manual doc comment 2019-01-27 10:24:24 +13:00
Félix Saparelli 578ffa1deb [run] Fix outdated comment in ExecHandler 2019-01-26 17:42:36 +13:00
Félix Saparelli 5846b64020 [run] Further dry the ExecHandler 2019-01-26 17:32:48 +13:00
Félix Saparelli 3dd2f797ab [process] Remove some more unwrap 2019-01-26 17:26:33 +13:00
Félix Saparelli 6a23f77687 [run] Pass ops by reference when possible 2019-01-26 17:20:29 +13:00
Félix Saparelli ede5505a6b [run] Dry spawning the child process 2019-01-26 17:16:07 +13:00
Félix Saparelli 5e44cafb94 [windows] Attempt to use tput to clear the screen
In some situations, this may clear the screen better than a call to
`cls`, and in all other cases `cls` is called anyway.

May help #99
2019-01-26 15:22:09 +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
Félix Saparelli ac3a4f0717 [pathop] Revert changes adding a time field 2019-01-26 14:40:30 +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
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 f6b16813aa Cfg off remaining items for a clean win/mac build
Closes #98
2018-10-05 20:56:06 +13: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 3c1eaa51f7 Add missing impl for StdError 2018-09-09 10:38:07 +12:00