Félix Saparelli
8b8b9674aa
Docs: fs
2021-10-16 20:02:17 +13:00
Félix Saparelli
423caaef2a
Docs: ProjectType
2021-10-16 19:56:38 +13:00
Félix Saparelli
e62f313533
Eliminate eyre from doctests too
2021-10-16 19:08:35 +13:00
Félix Saparelli
17310ee4b5
Docs: modules
2021-10-16 17:13:32 +13:00
Félix Saparelli
e06f615531
Implement basic check_glob()
2021-10-16 17:09:21 +13:00
Félix Saparelli
f58e97a62f
Fix globset ignorefile support (wrong field)
2021-10-16 17:01:27 +13:00
Félix Saparelli
5d2f2fcf62
Support the COMMON_PATH variant of the event summariser
2021-10-16 16:54:48 +13:00
Félix Saparelli
30abed3fb2
Add function to import an ignore file in globset filterer format
2021-10-16 16:45:03 +13:00
Félix Saparelli
ebabef9eed
Support extensions in globset filterer
2021-10-16 16:37:29 +13:00
Félix Saparelli
19b27959ed
Add globset filterer
2021-10-16 16:26:29 +13:00
Félix Saparelli
b2f4d0f244
Port method to summarise events from old source
2021-10-16 15:18:42 +13:00
Félix Saparelli
083c1e2f52
Move common_prefix to its own mod
2021-10-16 13:55:20 +13:00
Félix Saparelli
e577b040b9
Handle signalling to sub process on non-unix
2021-10-16 01:21:52 +13:00
Félix Saparelli
92513a4dc3
Add SubSignal type for sending signals to subprocesses
2021-10-16 01:14:17 +13:00
Félix Saparelli
86882e8d27
Add From<&str> for WatchedPath
2021-10-16 01:13:39 +13:00
Félix Saparelli
75243bfdad
Rename Signal to MainSignal
...
in preparation for another signal type
2021-10-16 01:13:16 +13:00
Félix Saparelli
55e4e1dc58
Review TODOs in the code
2021-10-15 23:00:50 +13:00
Félix Saparelli
8f61ac31da
Prep fs pathset for future
2021-10-15 01:38:21 +13:00
Félix Saparelli
14b0364135
Get filetype filters actually working
2021-10-14 01:26:15 +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
87b6729ab7
Add utility ProjectType::{is_vcs,is_soft} and project::common_prefix fns
2021-10-14 00:14:31 +13:00
Félix Saparelli
f24e95504b
Fix panic in tagged filtering
2021-10-14 00:13:48 +13:00
Félix Saparelli
c6336cdf3c
Add filetype matcher
2021-10-13 04:06:55 +13:00
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
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
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
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
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
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