Commit Graph

294 Commits

Author SHA1 Message Date
github-actions[bot]
6642362025
release: watchexec-filterer-tagged v0.1.1 (#411)
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Félix Saparelli <felix@passcod.name>
2022-09-07 04:11:47 +00:00
github-actions[bot]
d168ed9676
release: ignore-files v1.0.1 (#407)
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Félix Saparelli <felix@passcod.name>
2022-09-07 03:50:18 +00:00
github-actions[bot]
c46187f92d
release: project-origins v1.1.1 (#408)
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Félix Saparelli <felix@passcod.name>
2022-09-07 03:29:23 +00:00
Félix Saparelli
24a3a3c2f2
Deps: update miette and git-config (#406) 2022-09-07 02:52:53 +00:00
Félix Saparelli
6c40113e9e
Run cargo update (#392) 2022-09-07 13:15:38 +12:00
github-actions[bot]
79bcf6838d
release: watchexec v2.0.1 (#390)
Co-authored-by: github-actions <github-actions@github.com>
2022-09-07 00:57:50 +00:00
Félix Saparelli
f684db57ee
Update Notify to stable (#384) 2022-09-02 09:12:47 +00:00
github-actions[bot]
ce68338381 release: project-origins v1.1.0 (#385)
This is a release PR for **project-origins** to version **1.1.0**.

Upon merging, you will still need to manually publish the cargo crate.

```
$ cd crates/project-origins
$ cargo publish
```

To merge this release, review the changes then say:

| bors r+ p=10 |
|:-:|
2022-08-24 09:23:52 +00:00
github-actions[bot]
f866e6f498 release: cli v1.20.5 (#374)
This is a release PR for **cli** to version **1.20.5**.

Upon merging, this will automatically build the CLI and create a GitHub release. You still need to manually publish the cargo crate.

```
$ cd crates/cli
$ cargo publish
```

To merge this release, review the changes then say:

| bors r+ p=10 |
|:-:|

---

_Edit release notes into the section below:_

<!-- do not change or remove this heading -->
### Release notes

- Fix: mimalloc was set as the global allocator in the watchexec library, instead of leaving it to downstreams. (#369)
- Releng: s390x and ppc64le targets were added to be prebuilt. (#373)
2022-08-03 23:10:41 +00:00
github-actions[bot]
bb9021eec7 release: cli v1.20.4 (#366)
This is a release PR for **cli** to version **1.20.4**.

Upon merging, this will automatically build the CLI and create a GitHub release. You still need to manually publish the cargo crate.

```
$ cd crates/cli
$ cargo publish
```

To merge this release, review the changes then say:

| bors r+ p=10 |
|:-:|

---

_Edit release notes into the section below:_

<!-- do not change or remove this heading -->
### Release notes

- Remove CLI help tests. They'll be replaced with brand new integration testing that's not obnoxious. (#362, #363, #365)
- Fix the install filenames for first-party RPM packagings, and possibly for DEBs as well. (#292, #364)
2022-07-01 14:13:39 +00:00
Félix Saparelli
f0d64f07df Remove CLI help tests (#363)
Fixes #362

I've been working to remake the tests better / actually valuable but this is a quick "fix" for that issue... in any case help tests would have been gone anyway.
2022-07-01 13:39:43 +00:00
github-actions[bot]
f9ec29a60b release: cli v1.20.3 (#359)
This is a release PR for **cli** to version **1.20.3**.

Upon merging, this will automatically build the CLI and create a GitHub release. You still need to manually publish the cargo crate.

```
$ cd crates/cli
$ cargo publish
```

To merge this release, review the changes then say:

| bors r+ p=10 |
|:-:|

---

_Edit release notes into the section below:_

<!-- do not change or remove this heading -->
### Release notes

- Dependencies are set manually for first-party deb and rpm packages, so they should install without error. A note that these are provided on a best-effort basis and not tested; when available you should prefer your distribution's packaging. (#292, #358)

Co-authored-by: Félix Saparelli <felix@passcod.name>
2022-06-29 03:48:50 +00:00
github-actions[bot]
64895132aa release: cli v1.20.2 (#357)
This is a release PR for **cli** to version **1.20.2**.

Upon merging, this will automatically build the CLI and create a GitHub release. You still need to manually publish the cargo crate.

```
$ cd crates/cli
$ cargo publish
```

To merge this release, review the changes then say:

| bors r+ p=10 |
|:-:|
2022-06-28 14:15:48 +00:00
github-actions[bot]
50e2f0acbf release: cli v1.20.1 (#352)
This is a release PR for **cli** to version **1.20.1**.

Upon merging, this will automatically build the CLI and create a GitHub release. You still need to manually publish the cargo crate.

```
$ cd crates/cli
$ cargo publish
```

To merge this release, review the changes then say:

| bors r+ p=10 |
|:-:|
2022-06-28 12:43:58 +00:00
Félix Saparelli
4970646f1a Fix logging initialisation (#348)
- Fixes #345 (first crash, related to `RUST_LOG` being set)
- Adds multiple warnings when non-standard logging or build options are set
- Fixes the (internal) crate name of the cli so that the log target `watchexec_cli` works
- Fixes the verbosity config to target the actual crate names (snake vs kebab case)
- Fixes a usage error related to tracing's `log` compatibility
2022-06-28 12:21:19 +00:00
github-actions[bot]
77d4b03398 release: cli v1.20.0 (#337)
This is a release PR for **cli** to version **1.20.0**.

Upon merging, this will automatically build the CLI and create a GitHub release. You still need to manually publish the cargo crate.

```
$ cd crates/cli
$ cargo publish
```

To merge this release, review the changes then say:

| bors r+ p=10 |
|:-:|
2022-06-23 09:57:55 +00:00
github-actions[bot]
d71412cd12 release: filterer-tagged v0.1.0 (#336)
This is a release PR for **filterer-tagged** to version **0.1.0**.

Upon merging, you will still need to manually publish the cargo crate.

```
$ cd crates/filterer/tagged
$ cargo publish
```

To merge this release, review the changes then say:

| bors r+ p=10 |
|:-:|
2022-06-23 09:24:07 +00:00
github-actions[bot]
9c343a6eb2 release: filterer-globset v1.0.0 (#335)
This is a release PR for **filterer-globset** to version **1.0.0**.

Upon merging, you will still need to manually publish the cargo crate.

```
$ cd crates/filterer/globset
$ cargo publish
```

To merge this release, review the changes then say:

| bors r+ p=10 |
|:-:|
2022-06-23 03:33:20 +00:00
github-actions[bot]
5cf89eb7b4 release: filterer-ignore v1.0.0 (#333)
This is a release PR for **filterer-ignore** to version **1.0.0**.

Upon merging, you will still need to manually publish the cargo crate.

```
$ cd crates/filterer/ignore
$ cargo publish
```

To merge this release, review the changes then say:
| bors r+ p=10 |
|:-:|
2022-06-23 00:40:59 +00:00
github-actions[bot]
c3df998895 release: lib v2.0.0 (#329)
This is a release PR for **lib** to version **2.0.0**.

Upon merging, you will still need to manually publish the cargo crate.

```
$ cd crates/crates/lib
$ cargo publish
```

To merge this release, review the changes then say:

`bors r+ p=10`

Co-authored-by: Félix Saparelli <felix@passcod.name>
2022-06-17 00:29:33 +00:00
Félix Saparelli
adc4a0a576 Add --log-file so logs are easier to collect (#321) 2022-06-16 15:56:59 +00:00
Félix Saparelli
4562c0f2f9 release: ignore-files v1.0.0 (#318)
Co-authored-by: github-actions <github-actions@github.com>
2022-06-16 11:09:16 +00:00
github-actions[bot]
b133486c66 release: project-origins v1.0.0 (#314)
This is a release PR for **project-origins** to version **1.0.0**.

  Upon merging, you will still need to manually publish the cargo crate.

```
$ cd crates/project-origins
$ cargo publish
```

To merge this release, review the changes then say:

```
bors r+
```
2022-06-16 09:01:22 +00:00
Félix Saparelli
e98989f099
Almost there 2022-06-16 20:28:07 +12:00
Félix Saparelli
35cf63bc85 Split into more crates (#307) 2022-06-15 03:25:05 +00:00
Félix Saparelli
70aa48c59d Upgrade to clap 3 (#304)
This is just the upgrade, including the new option categories. Move to the derive API or more advanced features is left for later.
2022-06-11 08:05:11 +00:00
Félix Saparelli
ae2718ec4d Upgrade to miette 4 (#303) 2022-06-11 07:55:43 +00:00
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
Félix Saparelli
81b3340f6c
Update lockfile to latest notify patch release 2021-04-17 02:05:04 +12:00
Félix Saparelli
940f4b98d0 Update lockfile 2021-04-11 06:09:48 +12:00
Félix Saparelli
579e53678e 1.15.0 2021-04-11 05:58:32 +12:00
Félix Saparelli
6b1ba7aad7
Update dependencies 2021-04-11 05:51:33 +12:00
Félix Saparelli
c8619e34e0 1.14.1 2020-09-30 17:16:54 +13:00
Félix Saparelli
838103fcf2 Embed long paths manifest on windows (#163) 2020-09-30 17:06:41 +13:00
Félix Saparelli
502081203a 1.14.0 2020-07-04 00:57:29 +12:00
Félix Saparelli
2926e956ad Wump winapi to .9 2020-07-04 00:51:51 +12:00
Félix Saparelli
b9473c6c86 1.13.1 2020-06-06 15:21:08 +12:00
Félix Saparelli
80bbea7d21 1.13.0 2020-06-04 19:39:07 +12:00
Félix Saparelli
6a3af92d25 Update deps 2020-06-04 19:38:49 +12:00
Chris Nicholls
0175e071e1 Include .gitignores in subdirectories 2020-03-06 10:28:29 +00:00
Félix Saparelli
97232cfd09
1.12.0 2019-11-19 19:06:43 +13:00
Félix Saparelli
211bb681f5
1.11.1 2019-10-28 22:32:55 +13:00
Félix Saparelli
a0053ccda4
1.11.0 2019-10-28 19:20:10 +13:00
Félix Saparelli
97fd7c6a17
Update nix, glob, env_logger 2019-10-28 19:02:57 +13:00
Félix Saparelli
f7e1639ed1
Upgrade to winapi 0.3 2019-10-28 12:17:00 +13:00
Félix Saparelli
6b028cb649
Add builder for Args 2019-10-27 23:29:58 +13:00
Félix Saparelli
1738f26161 1.10.3 2019-07-30 11:47:37 +12:00
Félix Saparelli
0a2bc01c2f 1.10.2 2019-05-29 18:38:35 +12:00
Félix Saparelli
98b57ac64e [libs] Update notify to 4.0.12 2019-05-29 18:27:11 +12:00
Igor Gnatenko
22f5408bc0 Drop mktemp dependency (#115)
It is not used and depends on very very old version of uuid.

Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
2019-03-12 00:49:17 +13:00
Félix Saparelli
867ef7bc3c 1.10.1 2019-02-18 21:27:57 +13:00