Commit graph

351 commits

Author SHA1 Message Date
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
17edfe663b Add library version to debug log 2022-03-15 23:25:54 +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
9ff5875327 lib: v2.0.0-pre.11 2022-03-07 20:59:47 +13:00
Félix Saparelli
72100217e8 Allow */foo filters to match foo (compat)
This is buggy behaviour that exists in <=1.17, and this patch restores it*

Per gitignore rules, this glob:

    */somefile

Will match:

    foo/somefile
    bar/somefile

But not:

    somefile

However, so far we’ve accepted this. As this is a breaking change, this patch
introduces a hack which lets us accept this behaviour, but clearly marks it as
a compatibility exception. In 2.0, this will be gone.

Fixes #258

* It only restores it on unices, because the behaviour cannot be restored in
  any reasonable manner on Windows. Ah well. It's not for long anyway.
2022-03-07 20:33:29 +13:00
Félix Saparelli
03aef187bd Let --exts and --filter work together
These two options are meant to work together: they are a union of filters
rather than competing. Thus:

    --exts toml,py --filter Gemfile

will match all of:

    foo.toml
    bar.py
    Gemfile

rather than matching no files at all because Gemfile doesn’t have an extension.

Fixes #259
2022-02-22 02:26:46 +13:00
Félix Saparelli
4af6865ef0 Add broken tests for regressions
See #258 and #259
2022-02-12 22:39:40 +13:00
Félix Saparelli
93da1ce780 Carry help through elevated errors properly
This might show the help text twice actually. Let's see...
2022-02-12 20:05:19 +13:00
Félix Saparelli
b77da446d8
Split known create errors to get proper help text 2022-02-12 19:49:02 +13:00
Félix Saparelli
3b64a41d80
Split fs watcher errors into their own enum 2022-02-12 19:37:24 +13:00
Félix Saparelli
797a7fc708 Setup cargo-release 2022-02-10 01:40:32 +13:00
Félix Saparelli
bdcbe5ca3c lib: v2.0.0-pre.10 2022-02-07 17:18:21 +13:00
Félix Saparelli
965030b47b Add help text to FsWatcherCreate on Linux
See #251
2022-02-07 17:15:27 +13:00
Félix Saparelli
e40744f033 Elevate FsWatcherCreate errors to critical
See #251
2022-02-07 17:15:27 +13:00
Félix Saparelli
427e4a0d08 Change on_error to let the handler raise a CriticalError 2022-02-07 17:15:27 +13:00
Félix Saparelli
a890b0c916 Deduplicate paths in summarise_events_to_env
Fixes #253
2022-01-31 02:14:28 +13:00
Félix Saparelli
bc50c198b3 lib: v2.0.0-pre.9 2022-01-31 00:35:27 +13:00
Félix Saparelli
d7a305fc4c
Only run one outcome worker at a time 2022-01-31 00:05:43 +13:00
Félix Saparelli
2a9ee4de0b
Add detailed logging to process holder 2022-01-31 00:05:10 +13:00
Félix Saparelli
9a736c5eb9
Use newly &self Supervisor.wait to drop wait loop 2022-01-31 00:04:56 +13:00
Félix Saparelli
995d38078e
Use a tokio::watch in the supervisor to avoid races 2022-01-31 00:00:51 +13:00
Félix Saparelli
3e942c4d19
Double-check the ongoing atomic 2022-01-30 22:29:33 +13:00
Félix Saparelli
fdf4dcd13e
Provide opportunities for process holder to be queried concurrently to a wait() 2022-01-29 04:14:51 +13:00
Félix Saparelli
12ef0411f8
Don't log an error from outcome worker on graceful exit 2022-01-29 04:13:28 +13:00
Félix Saparelli
328700dd72
Stop holding supervisor handle 2022-01-29 04:13:08 +13:00
Félix Saparelli
c74eab5e91 Split up action in mods 2022-01-29 02:39:06 +13:00
Félix Saparelli
cc0c0be45a
Save a pointer by passing around an Arc<[T]> instead of Arc<Vec<T>> 2022-01-29 02:17:23 +13:00
Félix Saparelli
22f081a47b Spawn outcome apply separately from action loop 2022-01-29 02:08:34 +13:00
Félix Saparelli
10b31a0269 Wrap Supervisor in a RwLock 2022-01-29 02:08:34 +13:00
Félix Saparelli
a651d149b0 Replace AtomicTakes with HandleLocks in action 2022-01-29 02:08:34 +13:00
Félix Saparelli
b8ffa0c38a Formatting 2022-01-29 02:08:34 +13:00
Félix Saparelli
9845d48464 Add HandlerLock wrapper
This lets a Handler be shared (via a Tokio mutex)
2022-01-29 02:08:34 +13:00
Félix Saparelli
d9006a240d Remove keep_* config methods 2022-01-29 02:08:25 +13:00
Félix Saparelli
c444895593
Move swaplock to the root 2022-01-28 23:32:54 +13:00
Félix Saparelli
18a2b204e2 Hide io::errors when "waiting on process group" 2022-01-27 10:48:24 +13:00
Félix Saparelli
fc40336db7 lib: v2.0.0-pre.8 2022-01-26 10:01:15 +13:00
Félix Saparelli
a6c997f470
globset: Always pass non-path events (#248) 2022-01-26 09:59:53 +13:00
Félix Saparelli
f6a3b76d92 lib: v2.0.0-pre.7 2022-01-26 02:33:28 +13:00
Félix Saparelli
a5e756df7c Remove unused check_glob utility 2022-01-26 01:58:01 +13:00
Félix Saparelli
59d8388d7e globset: allow multipath events through if any path passes the filter 2022-01-26 01:51:48 +13:00
Félix Saparelli
42d64d0a6d
Fail all folders on extension check 2022-01-26 01:18:32 +13:00
Richard Huang
67452152c2
Fix spawing -> spawning typo 2022-01-24 21:52:16 -08:00
Félix Saparelli
b8b2c2ca70 Fix citation versioning 2022-01-23 21:55:09 +13:00
Félix Saparelli
c79a3bd12c Upgraded fmt 2022-01-22 14:00:42 +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
c58333496e Fail files with no extension on extension check
Instead of passing them, I don't know what I was thinking
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