Félix Saparelli
fb4f136c0d
Match path globs
2021-10-13 04:06:39 +13:00
Félix Saparelli
758ac2dc89
Change panic into a todo
2021-10-13 01:51:09 +13:00
Félix Saparelli
fd2edbf11c
Compile gitignore patterns
2021-10-13 01:49:38 +13:00
Félix Saparelli
c9da2c133a
Harmonise root/origin
2021-10-13 01:49:11 +13:00
Félix Saparelli
f16ba2dff1
Redo and sketch new filter adding process
2021-10-13 00:48:42 +13:00
Félix Saparelli
cd7d5f1fcb
Draft and plan ignore loading
2021-10-11 23:34:14 +13:00
Félix Saparelli
3c65aee839
Find project types
2021-10-10 23:35:27 +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
7af0339871
Detect project origins (if any)
2021-10-10 17:56:49 +13:00
Félix Saparelli
3219be53f5
Add support for bazaar global ignores
2021-10-10 16:06:56 +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
8bc58ba6b5
Start sketching gitignore support
2021-10-09 18:45:32 +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
323f2d29ee
Split off filter errors into their own type(s)
2021-10-09 18:41:45 +13:00
Félix Saparelli
3dff065f4b
Add error variants for external custom errors
2021-10-09 18:38:37 +13:00
Félix Saparelli
81bee9513d
Remove derive-builder
...
* the InitConfigBuilder non-miette error goes away
* creating an InitConfig is no longer faillible for no reason
* the "builder" style is consistent between the two config structs
2021-10-09 18:37:59 +13:00
Félix Saparelli
07878f8357
Implement path filtering
2021-09-30 04:03:46 +13:00
Félix Saparelli
288ce9d2f4
== and != perform case-insensitive comparisons
2021-09-30 02:34:27 +13:00
Félix Saparelli
d6b7175bb1
Formattting
2021-09-29 23:43:39 +13:00
Félix Saparelli
45a7ce6aa0
Fix logic error and upgrade warn to panic in debug
2021-09-28 23:44:28 +13:00
Félix Saparelli
6b306a15ab
Add event saturation notes
2021-09-28 22:52:59 +13:00
Félix Saparelli
7cdb6ac5ad
Bypass filters for empty events
2021-09-28 22:23:48 +13:00
Félix Saparelli
f492bca8c3
Add filter add/del error to runtime
2021-09-28 22:23:23 +13:00
Félix Saparelli
9bb6e1356a
Add is_empty and is_internal to Event
2021-09-28 22:22:33 +13:00
Félix Saparelli
f673d00e9c
Add logging to filter parser
2021-09-28 22:22:14 +13:00
Félix Saparelli
f3c74bd151
Add methods to configure tagger filter
2021-09-28 22:21:51 +13:00
Félix Saparelli
4fda3c477b
Add logging to tagged filter
2021-09-28 22:21:13 +13:00
Félix Saparelli
6e414d1de4
Change the default of Shell
2021-09-28 01:44:20 +13:00
Félix Saparelli
2c894266a8
Add negation filters, and filter application
2021-09-28 00:54:33 +13:00
Félix Saparelli
b57fa8b236
Start implementing two Filterers (v1 and v2)
2021-09-23 21:59:35 +12:00
Félix Saparelli
7875b4db67
Provide filterer as trait
...
which will allow basically anything user-provided as filter, though of
course we'll have (soon) our own fairly comprehensive implementation
2021-09-22 23:39:41 +12:00
Félix Saparelli
f1685821a3
Split types out of action
2021-09-18 17:20:05 +12:00
Félix Saparelli
29d0b66ba9
Move filter types out
2021-09-18 17:09:00 +12:00
Félix Saparelli
2be21b6bac
Move filter parser out
2021-09-18 17:07:32 +12: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
9e3c8c1f32
Rename particle/culars to tags
2021-09-13 19:34:40 +12:00
Félix Saparelli
e5fcc6553e
Also leave alt buffer on reset
2021-09-04 02:00:57 +12:00
Félix Saparelli
4043ed34ae
Add Reset outcome ( #186 , #211 )
2021-09-04 01:55:25 +12:00
Félix Saparelli
645ab74c62
Implement Outcome::Wait, and CLI on-busy=queue
2021-09-03 09:25:23 +12:00
Félix Saparelli
b923638cbd
Correctly watch for process completion
2021-09-03 09:25:06 +12:00
Félix Saparelli
9c8d4c1a1b
Add fs event metadata to event
2021-09-03 08:14:04 +12:00
Félix Saparelli
5cbbb7b67f
Add Display impl for events
2021-09-03 07:57:59 +12:00
Félix Saparelli
608aa516b1
Add source to internal event
2021-09-03 07:57:45 +12:00
Félix Saparelli
ec6b508894
Ignoring supervisor kill/signal internal errors
...
As the errors only occur when the process is dead anyway
2021-09-03 05:43:26 +12:00
Félix Saparelli
b728bfecfc
Differentiate trace logs when ending supervisor
2021-09-03 05:42:24 +12:00
Félix Saparelli
f880b0b38a
Always apply Both outcomes, even when the first fails
2021-09-03 05:41:50 +12:00
Félix Saparelli
8e4994abca
Add process supervisor to watch command to completion
...
Also change the concept of a completion handler to instead sending a
synthetic "process completed" event down the same path as usual.
That makes handling completion the job of the action handler, but also
means it's immediately possible to launch a process or do an action in
response to the process completing. Win win!
2021-09-03 05:22:15 +12:00
Félix Saparelli
0f247e9e5c
Fix demo for poll option gaining a timeout
2021-09-03 05:18:30 +12:00
Félix Saparelli
ef453193af
Add pre-spawn and post-spawn hooks
2021-08-25 04:41:14 +12:00
Félix Saparelli
6767948daa
Specify delay for fs Poll mode
2021-08-24 22:28:29 +12:00
Félix Saparelli
33fb691d29
Add method to insert events into watchexec manually
2021-08-24 22:20:44 +12:00
Félix Saparelli
9cb1f5bf79
Re-export Outcome's Signal type
2021-08-24 21:31:46 +12:00
Félix Saparelli
23d794ed7e
Apply tabs project-wide
2021-08-24 20:22:25 +12:00
Félix Saparelli
33f8b60e46
Take IntoIterator<AsRef<str>> to be more flexible on input
2021-08-24 20:14:01 +12:00
Félix Saparelli
05afb141b6
Add InitConfig::builder() to be a little more idiomatic
...
Neat side effect: keeps rust-analyzer from complaining about unknown types
(because it doesn't expand the builder macro)!
2021-08-24 19:59:11 +12:00
Félix Saparelli
b4ead7f5fb
Report several runtime errors if notify gives us several paths in an error
2021-08-23 06:08:25 +12:00
Félix Saparelli
3588cb4d62
Log fs watch/unwatch errors harder (to reveal paths)
2021-08-23 05:15:55 +12:00
Félix Saparelli
6cb3fc1c9a
Demo switching file watcher backends at runtime
2021-08-23 03:59:02 +12:00
Félix Saparelli
4a9168f5e6
Log on graceful exit
2021-08-23 03:36:10 +12:00
Félix Saparelli
9b94f18890
Fix double-actioning in throttle
2021-08-23 03:12:23 +12:00
Félix Saparelli
b42336cb74
Actually watch files in example
2021-08-23 03:11:58 +12:00
Félix Saparelli
b2effda341
Update to miette 1.0 beta
2021-08-23 02:37:13 +12:00
Félix Saparelli
5314d201a4
Expand print_out example into watchexec test case
2021-08-23 02:36:58 +12:00
Félix Saparelli
74d8e73817
Fix tokio panic for async handlers
2021-08-23 02:35:28 +12:00
Félix Saparelli
931648a955
Add signals() convenience iter on Event
2021-08-23 02:35:03 +12:00
Félix Saparelli
cc5b1c988e
Add some logging to Process
2021-08-23 02:34:44 +12:00
Félix Saparelli
60ed6bba25
Fix infinite loop in action recv code
2021-08-23 02:34:29 +12:00
Félix Saparelli
05117e69fe
Prep for more handlers in action
2021-08-23 02:33:23 +12:00
Félix Saparelli
4843920a36
Protect again starting command without anything in command
2021-08-23 02:32:48 +12:00
Félix Saparelli
17b09d8798
Add graceful exit support
2021-08-23 02:32:08 +12:00
Félix Saparelli
f4a8a9fc6a
Print PID in initialisation
2021-08-23 02:30:56 +12:00
Félix Saparelli
18d2487ec3
Rename reconfig to reconfigure
2021-08-23 00:31:39 +12:00
Félix Saparelli
3066ee5913
Implement most of process handling
2021-08-23 00:28:20 +12:00
Félix Saparelli
f150c26b22
Add action.grouped config
2021-08-23 00:27:45 +12:00
Félix Saparelli
d2d0bb7be2
Resolve compound outcomes
2021-08-22 23:23:01 +12:00
Félix Saparelli
7a709b9b4d
Prefer generic Both combinator than specific ClearAnd
2021-08-22 23:22:27 +12:00
Félix Saparelli
c85c164c09
Make the example in lib.rs compile
2021-08-22 22:06:50 +12:00
Félix Saparelli
227c2a0e0d
Add command and shell options to action
2021-08-22 22:06:31 +12:00
Félix Saparelli
613fe24c64
Add paths() convenience iter on Event
2021-08-22 22:06:12 +12:00
Félix Saparelli
8998c40746
Add convenience methods for Outcome's combinators
2021-08-22 22:05:45 +12:00
Félix Saparelli
d7d549a4c8
Add convenience modifiers on RuntimeConfig ourselves
...
It's not exactly a builder, and this lets us flatten all the options at the
top level instead of requiring the user to dig deeper into the
action, fs, etc modules' WorkingData structs.
2021-08-22 22:05:09 +12:00
Félix Saparelli
6c3c06e39c
Stop using Builder for RuntimeConfig
2021-08-22 20:49:24 +12:00
Félix Saparelli
53854d93d4
Change Outcome::OrStart to the more flexible ::IfRunning
2021-08-22 20:47:47 +12:00
Félix Saparelli
656c0d8fd2
Fix action throttling
...
Specifically, on loop start the timeout would be for the full throttle duration,
which is not correct if some time has passed or the loop goes on recycle
2021-08-22 20:29:57 +12:00
Félix Saparelli
40f6f7397f
Fill out Outcome
2021-08-22 20:27:51 +12:00
Félix Saparelli
5b8611a8c0
Make notes on needed docs
2021-08-22 20:26:48 +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
2a0661b122
Call action handler on action
2021-08-22 05:58:03 +12:00
Félix Saparelli
2812a723ff
Write action throttling code
2021-08-22 02:54:02 +12:00
Félix Saparelli
ce60be2ec9
Add print_out example
2021-08-22 02:53:31 +12:00
Félix Saparelli
f2f138ce9f
Add logging to Watchexec
2021-08-22 02:53:20 +12:00
Félix Saparelli
019018c93e
Add docs for error_handler as it's a bit tricky
2021-08-21 22:30:19 +12:00
Félix Saparelli
816313303a
Finish handlers by implementing the error hook
2021-08-21 20:46:44 +12:00
Félix Saparelli
0f37e42243
Add action worker
2021-08-21 04:43:55 +12:00
Félix Saparelli
dcde429787
Improve handlers to not need GATs and provide various impls
2021-08-21 04:43:15 +12:00
Félix Saparelli
9f34492c79
Upgrade to notify pre.12
2021-08-20 02:59:39 +12:00
Félix Saparelli
95ad3e91ff
Add example / aspirational usage to lib doc
2021-08-20 02:56:13 +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