Commit graph

270 commits

Author SHA1 Message Date
Félix Saparelli
35cf63bc85 Split into more crates (#307) 2022-06-15 03:25:05 +00:00
Félix Saparelli
70aa48c59d Upgrade to clap 3 (#304)
This is just the upgrade, including the new option categories. Move to the derive API or more advanced features is left for later.
2022-06-11 08:05:11 +00:00
Félix Saparelli
ae2718ec4d Upgrade to miette 4 (#303) 2022-06-11 07:55:43 +00:00
Félix Saparelli
446a8d95a7 Replace event queue with a priority queue (#302)
Solves several issues, generally through delivering signals before filesystem events, preventing situations where an overwhelming amount of events makes it impossible to quit.

Does _not_ solve the problem of a queue full of lower-priority events not accepting an urgent message, but that's a rarer issue that's more complicated to overcome.

Changes the Filterer trait: adds Priority to `check_event()`

Makes some events unfilterable (Urgent priority): SIGINT, SIGTERM, and CTRL_C to the main process. These still need to be handled by `on_action` to do anything, but cannot be stopped before reaching that.
2022-06-11 06:43:11 +00:00
Félix Saparelli
62e79fbf7a Add log feature to tracing (#300) 2022-06-07 12:15:17 +00:00
Félix Saparelli
edf023c009 cli: v1.19.0 2022-04-15 15:49:58 +12:00
Félix Saparelli
b374de6097 cli: v1.18.12 2022-04-13 09:22:53 +12:00
Félix Saparelli
036d9a27e8 Ignore homedir if discovered as origin unless explicitly requested
Fixes #276
2022-04-12 21:59:05 +12:00
Félix Saparelli
98348be8b5 lib: v2.0.0-pre.14 2022-04-04 11:47:36 +12:00
David Calavera
20597802ad
Remove git2 as a dependency (#267)
This dependency cannot be sent between threads.
Instead use git-config which is a pure rust implementation to read git config files.

Uses the builtin values::Path struct to extract ignore paths.
It takes care of all the corner cases with how git interprets paths.
2022-04-04 11:43:30 +12:00
Félix Saparelli
e8d3bb964c cli: v1.18.11 2022-03-28 10:29:14 +13:00
Félix Saparelli
57e2ddf9fa cli: v1.18.10 2022-03-27 18:23:06 +13:00
Félix Saparelli
7baf79e929 cli: v1.18.9 2022-03-18 15:18:58 +13:00
Félix Saparelli
3969264e91 lib: v2.0.0-pre.13 2022-03-18 15:00:02 +13:00
Félix Saparelli
07bf2523b6 Revert mac to fsevents 2022-03-18 14:08:59 +13:00
Félix Saparelli
572fc53793 cli: v1.18.8 2022-03-16 16:24:19 +13:00
Félix Saparelli
29dcd418ba lib: v2.0.0-pre.12 2022-03-16 16:10:33 +13:00
Félix Saparelli
e5731abde0 Use exact version reqs for prereleases
I did not realise that Cargo considers -pre.1 and -pre.2 to be
compatible, so the latest Notify prerelease broke all existing
releases, and whenever I release a new lib it may break all CLI
versions if the API changes.
2022-03-16 16:02:29 +13:00
Félix Saparelli
223d29fa4a Update lockfile 2022-03-14 12:58:02 +13:00
Félix Saparelli
465895ddec Upgrade notify 2022-03-14 12:57:49 +13:00
Félix Saparelli
5e6adabf8d Use kqueue on mac 2022-03-14 12:50:46 +13:00
Félix Saparelli
a3c03b9fac cli: v1.18.7 2022-03-07 21:41:30 +13:00
Félix Saparelli
9ff5875327 lib: v2.0.0-pre.11 2022-03-07 20:59:47 +13:00
Félix Saparelli
bd7a933906 cli: v1.18.6 2022-02-07 17:34:26 +13:00
Félix Saparelli
bdcbe5ca3c lib: v2.0.0-pre.10 2022-02-07 17:18:21 +13:00
Félix Saparelli
8ebcf083b8 Start work on 1.18.6 2022-01-31 19:15:30 +13:00
Félix Saparelli
ba64fb3c38 cli: v1.18.5 2022-01-31 00:49:45 +13:00
Félix Saparelli
ada9888fdf Use lib pre.9 2022-01-31 00:45:47 +13:00
Félix Saparelli
bc50c198b3 lib: v2.0.0-pre.9 2022-01-31 00:35:27 +13:00
Félix Saparelli
7ccd3c92e0 cli: v1.18.4 2022-01-26 10:04:09 +13:00
Félix Saparelli
e6d80558f8 Use lib pre.8 2022-01-26 10:03:53 +13:00
Félix Saparelli
fc40336db7 lib: v2.0.0-pre.8 2022-01-26 10:01:15 +13:00
Félix Saparelli
77ee59a9e3 cli: v1.18.3 2022-01-26 02:36:27 +13:00
Félix Saparelli
d067b5a5de Use lib pre.7 2022-01-26 02:36:01 +13:00
Félix Saparelli
f6a3b76d92 lib: v2.0.0-pre.7 2022-01-26 02:33:28 +13:00
Félix Saparelli
a51979b54e cli: v1.18.2 2022-01-24 20:53:20 +13:00
Félix Saparelli
b5c16f291e cli: v1.18.1 2022-01-23 21:53:29 +13:00
Félix Saparelli
7effd1a61e cli: v1.18.0 2022-01-19 00:05:03 +13:00
Félix Saparelli
7d60b1689e Use lib pre.6 2022-01-19 00:04:41 +13:00
Félix Saparelli
a3fd743786 lib: v2.0.0-pre.6 2022-01-19 00:00:46 +13:00
Félix Saparelli
631c328a55 Use version for lib dependency 2022-01-18 23:56:10 +13:00
Félix Saparelli
c91ab99ac3 lib: v2.0.0-pre.5 2022-01-18 23:27:30 +13:00
Félix Saparelli
8748c062c4 Update deps 2022-01-18 22:21:21 +13:00
Félix Saparelli
c821faf383
Split error mod and split generic/specific io errors 2022-01-16 18:57:40 +13:00
Félix Saparelli
26e0b60b7b lib: v2.0.0-pre.4 2022-01-16 16:55:55 +13:00
Félix Saparelli
7fa80f8715 lib: v2.0.0-pre.3 2021-12-29 21:49:07 +13:00
Félix Saparelli
d39ffed51e lib: v2.0.0-pre.2 2021-12-29 21:29:30 +13:00
Félix Saparelli
c45840b657
Load global and -F filter files 2021-12-29 18:39:31 +13:00
Félix Saparelli
d64135c2c0
Upgrade tracing-subscriber to 0.3 2021-12-24 02:35:26 +13:00
Félix Saparelli
c3094eaff8
Upgrade to tokio-console 0.1 2021-12-24 02:28:21 +13:00
Félix Saparelli
9d04143202 lib: v2.0.0-pre.1 2021-12-21 18:19:16 +13:00
Félix Saparelli
470cdd698b
Replace ExitStatus with our own type in Event 2021-10-22 05:38:48 +13:00
Félix Saparelli
0b60f5edb5 lib: v2.0.0-pre.0 2021-10-17 03:41:13 +13:00
Félix Saparelli
e62f313533
Eliminate eyre from doctests too 2021-10-16 19:08:35 +13:00
Félix Saparelli
2225b6d097
Reduce deps featureset 2021-10-16 17:27:21 +13:00
Félix Saparelli
948388b019 Reduce featureset of dependencies (tokio,git2) 2021-10-15 14:27:17 +13:00
Félix Saparelli
ae6af17aea
Find and load all ignores for watchexec cli 2021-10-14 00:38:56 +13:00
Félix Saparelli
fd2edbf11c
Compile gitignore patterns 2021-10-13 01:49:38 +13:00
Félix Saparelli
1dff1f5644
Find project origins more efficiently 2021-10-10 23:35:11 +13:00
Félix Saparelli
59fe74656a
Stop using eyre even in examples 2021-10-10 21:04:40 +13:00
Félix Saparelli
65b042ec8f
Discover ignore files for path and for user/env 2021-10-10 16:03:05 +13:00
Félix Saparelli
a1fce1b06e
Replace eyre with miette
and upgrade it to 3.2.0
2021-10-09 18:43:51 +13:00
Félix Saparelli
288ce9d2f4
== and != perform case-insensitive comparisons 2021-09-30 02:34:27 +13:00
Félix Saparelli
f93ba29982 Update deps 2021-09-29 23:38:02 +13:00
Félix Saparelli
dfb5525c7e Add tokio-console 2021-09-29 01:47:18 +13:00
Félix Saparelli
84dc77f787 Add parser for filters 2021-09-14 20:11:29 +12:00
Félix Saparelli
6a55f5cc6d
Start on filter types 2021-09-13 19:51:07 +12:00
Félix Saparelli
e939f97c90
Move config creation out of arg parsing, and start on using libv2 2021-08-24 20:23:37 +12:00
Félix Saparelli
b2effda341
Update to miette 1.0 beta 2021-08-23 02:37:13 +12:00
Félix Saparelli
3066ee5913
Implement most of process handling 2021-08-23 00:28:20 +12:00
Félix Saparelli
350b85e0c7
Allow an outcome to be determined by the action handler without &mut! 2021-08-22 18:56:57 +12:00
Félix Saparelli
9f34492c79
Upgrade to notify pre.12 2021-08-20 02:59:39 +12:00
Félix Saparelli
6a46c2bff3
Refactor watchexec to only have &self methods and default to wrap it in Arc 2021-08-20 02:55:34 +12:00
Félix Saparelli
249c581dc9
Make channel buffers configurable 2021-08-19 21:28:56 +12:00
Félix Saparelli
0bb38f40a5
Start off on main interface 2021-08-19 01:12:50 +12:00
Félix Saparelli
cae00070fb
Remove chrono dep 2021-08-18 18:54:05 +12:00
Félix Saparelli
f5e19a6e5f
Adapt Shell command builder 2021-08-17 03:09:22 +12:00
Félix Saparelli
7053360187
Clarify fs worker usage 2021-08-17 01:37:01 +12:00
Félix Saparelli
822148da03
Canonicalise paths + add example 2021-08-17 01:15:17 +12:00
Félix Saparelli
b15615bbaa
Start on watchexec v2 2021-08-16 21:49:12 +12:00
Félix Saparelli
e21a3a99f6 cli: v1.17.1 2021-07-31 06:37:29 +12:00
Félix Saparelli
d54d74854e
Add experimental --notify option
See #139
2021-07-31 05:11:42 +12:00
Félix Saparelli
bc07ad486d cli: v1.17.0 2021-07-22 03:25:51 +12:00
Félix Saparelli
bd96803d1e lib: v1.17.1 2021-07-22 01:36:33 +12:00
Félix Saparelli
bf922e36ac lib: v1.17.0 2021-07-22 01:15:46 +12:00
Félix Saparelli
146d49ee8e
Update deps 2021-07-21 23:57:31 +12:00
Félix Saparelli
9c20c8c8b5 Replace process code with command-group 2021-07-21 20:22:40 +12:00
Félix Saparelli
54ac2e9ae0
Use color-eyre for application errors rather than the library's error type 2021-07-17 01:33:04 +12:00
Félix Saparelli
0c25ea0269 cli: v1.16.2 2021-07-10 20:08:45 +12:00
Félix Saparelli
8368846444 Update deps 2021-07-10 20:07:59 +12:00
Félix Saparelli
7b16a226b2 lib: v1.16.1 2021-07-10 20:04:31 +12:00
Félix Saparelli
960bbbabbc cli: v1.16.1 2021-05-22 20:05:57 +12:00
Félix Saparelli
695c2e0f1a Update lockfile 2021-05-22 20:00:06 +12:00
Félix Saparelli
f0862b9f1e Update to clearscreen 1.0.4 for bugfix 2021-05-22 19:59:32 +12:00
Félix Saparelli
0d2f28c91a
Add test for cli help 2021-05-10 23:02:31 +12:00
Félix Saparelli
ad9f51a24b lib: v1.16.0 2021-05-09 03:46:23 +12:00
Félix Saparelli
6a0ac73547 cli: v1.16.0 2021-05-09 02:21:07 +12:00
Félix Saparelli
d23261673b
Update clearscreen 2021-05-08 18:43:12 +12:00
Félix Saparelli
1f3f4ada35 Split into two crates: lib and cli
That has a number of advantages:

- #193 the build.rs is only run for the CLI, so the Windows manifest is
  not embedded in the library anymore, opening it up for downstreams.

- it sets the stage for decoupling the version numbers of the CLI and
  library, to have the library increase its major more often, while the
  CLI retains compatibility further… that is, to have both follow semver

- it removes the CLI-only dependencies from the library

- it makes compilation a bit faster as compiling the library and the
  CLI's other dependencies can happen in parallel

One major disadvantage:

- installing via cargo changes from watchexec to watchexec-cli. Most
  installs are from prebuilt and from packages, but that's still a
  potential stumble.

And of course, the CLI APIs in the library are gone (they were already
deprecated, though).

We also take this opportunity to get rid of the clear_screen code and
use our new clearscreen library. #99 #171 #185
2021-05-01 03:27:17 +12:00
Félix Saparelli
74934f304f 1.15.3 2021-05-01 00:27:44 +12:00
Félix Saparelli
12184136f7 1.15.2 2021-04-27 02:04:52 +12:00
Félix Saparelli
8decbd63f6 Update lockfile 2021-04-27 00:10:21 +12:00
Félix Saparelli
2603f13fc7 1.15.1 2021-04-17 12:48:21 +12:00
Félix Saparelli
81b3340f6c
Update lockfile to latest notify patch release 2021-04-17 02:05:04 +12:00
Félix Saparelli
940f4b98d0 Update lockfile 2021-04-11 06:09:48 +12:00
Félix Saparelli
579e53678e 1.15.0 2021-04-11 05:58:32 +12:00
Félix Saparelli
6b1ba7aad7
Update dependencies 2021-04-11 05:51:33 +12:00
Félix Saparelli
c8619e34e0 1.14.1 2020-09-30 17:16:54 +13:00
Félix Saparelli
838103fcf2 Embed long paths manifest on windows (#163) 2020-09-30 17:06:41 +13:00
Félix Saparelli
502081203a 1.14.0 2020-07-04 00:57:29 +12:00
Félix Saparelli
2926e956ad Wump winapi to .9 2020-07-04 00:51:51 +12:00
Félix Saparelli
b9473c6c86 1.13.1 2020-06-06 15:21:08 +12:00
Félix Saparelli
80bbea7d21 1.13.0 2020-06-04 19:39:07 +12:00
Félix Saparelli
6a3af92d25 Update deps 2020-06-04 19:38:49 +12:00
Chris Nicholls
0175e071e1 Include .gitignores in subdirectories 2020-03-06 10:28:29 +00:00
Félix Saparelli
97232cfd09
1.12.0 2019-11-19 19:06:43 +13:00
Félix Saparelli
211bb681f5
1.11.1 2019-10-28 22:32:55 +13:00
Félix Saparelli
a0053ccda4
1.11.0 2019-10-28 19:20:10 +13:00
Félix Saparelli
97fd7c6a17
Update nix, glob, env_logger 2019-10-28 19:02:57 +13:00
Félix Saparelli
f7e1639ed1
Upgrade to winapi 0.3 2019-10-28 12:17:00 +13:00
Félix Saparelli
6b028cb649
Add builder for Args 2019-10-27 23:29:58 +13:00
Félix Saparelli
1738f26161 1.10.3 2019-07-30 11:47:37 +12:00
Félix Saparelli
0a2bc01c2f 1.10.2 2019-05-29 18:38:35 +12:00
Félix Saparelli
98b57ac64e [libs] Update notify to 4.0.12 2019-05-29 18:27:11 +12: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
Félix Saparelli
867ef7bc3c 1.10.1 2019-02-18 21:27:57 +13:00
Félix Saparelli
b5afcd58ae 1.10.0 2019-01-26 18:21:52 +13:00
Félix Saparelli
8ffe20d545 [libs] Update other deps 2019-01-26 18:19:57 +13:00
Félix Saparelli
63afc013c9 [libs] Update Notify 2019-01-26 18:02:27 +13: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
f5d8d134a0 1.9.0 2018-08-19 21:31:46 +12:00
Félix Saparelli
f61b7507af Update dependencies 2018-08-19 20:58:47 +12: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
Matt Green
9f82872943 1.8.6 2017-10-09 08:56:55 -04:00
Matt Green
d6ea55cbd4 1.8.5 2017-09-08 16:17:52 -04:00
Lilian A. Moraru
e39256cfb2 Update dependencies and other small improvements 2017-08-26 22:07:06 +03:00
Matt Green
e3105c0abb Bump to 1.8.4 2017-05-18 13:23:24 -04:00
Matt Green
f4774d6f8c 1.8.3 2017-04-27 15:40:00 -04:00
Matt Green
f9a3cade26 Add common VCS dirs to default ignore list (fixes #54) 2017-04-27 15:20:44 -04:00
Matt Green
0696b5266b 1.8.1 2017-04-26 10:13:02 -04:00
Félix Saparelli
158d0dc9c4
Update to clap 2.22 2017-04-25 11:42:47 +12:00
Matt Green
f3093faf97 1.8.0 2017-04-19 17:34:46 -04:00
Matt Green
e16a6b3a24 Support watching multiple paths 2017-02-04 16:18:02 -05:00
Matt Green
c3e7cf00d5 cargo update 2017-01-27 13:13:08 -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
2dd2e72214 Update dependencies 2016-12-20 11:48:45 -05:00
Matt Green
154c23a5a4 Propagate SIGTSTP/SIGCONT to children 2016-12-14 20:19:58 -05:00
Matt Green
ceda4a553c 1.5.0 2016-11-23 13:01:51 -05:00