Commit graph

217 commits

Author SHA1 Message Date
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