Félix Saparelli
009ef2356f
Deny 2018 idioms
2022-04-13 22:59:43 +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
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
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
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
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
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
a6c997f470
globset: Always pass non-path events ( #248 )
2022-01-26 09:59:53 +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
c79a3bd12c
Upgraded fmt
2022-01-22 14:00:42 +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
044a8244f9
Almost forgot windows...
2022-01-16 20:17:32 +13:00
Félix Saparelli
8bd48c6290
Don't fail if we can't canonicalize an event path
...
e.g. for deletes
2022-01-16 20:06:44 +13:00
Félix Saparelli
4737937350
Remove generic tagged io error enum variant
2022-01-16 20:01:14 +13:00
Félix Saparelli
e2f27a1b01
Add context to last runtime io error
...
and remove generic runtime io error enum variant
2022-01-16 20:00:07 +13:00
Félix Saparelli
2ea62aec6a
Add context to last critical io error
...
and remove generic critical io error enum variant
2022-01-16 19:55:57 +13:00
Félix Saparelli
bc0fe6be70
Add context to io errors
2022-01-16 19:46:52 +13:00
Félix Saparelli
4085fc522c
Add SpecificIoError trait support for tagged error
2022-01-16 19:16:07 +13:00
Félix Saparelli
44a44a50d1
Move TaggedFiltererError into main error mod
2022-01-16 19:14:31 +13:00
Félix Saparelli
b29b3bf1e0
Add helper trait to add context to io errors
2022-01-16 19:09:50 +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
10b71847da
Add support for Pijul and Subversion
2022-01-16 16:13:05 +13:00
Félix Saparelli
3d32f2d24b
Hook up new globset signature
2022-01-16 16:09:53 +13:00