watchexec

Executes commands in response to file modifications

APACHE-2.0 License

Downloads
1.3K
Stars
5.2K
Committers
64

Bot releases are visible (Hide)

watchexec - 1.15.2

Published by github-actions[bot] over 3 years ago

  • #99 #185 #171 Experimental: new spinoff crate clearscreen which is a comprehensive terminal/console screen clearing library. Eventually this will be used here, for now it needs a little time to settle and get properly tested around a bunch of terminals and setups (and you can help!). However, its API is stable and it is fully documented, so please consider it for new projects!
  • New: a cute logo for the project! ๐Ÿš๐Ÿฆ€ This is used in the repo metadata and the API documentation. For now!
  • On Windows, the application manifest has been added to, which opts us into a few modern settings, adds some metadata, and declares compatibility to Windows 8, 8.1, and 10.

black and white image of a hermit crab in a round shell with an upside-down diagonal-sideways greek lowercase omega

watchexec - 1.15.1

Published by github-actions[bot] over 3 years ago

  • #168 Decreasing debounce interval further to 150ms.
  • #181 Fix --shell to support (very simply) options passed to the shell.
  • #189 Fix algorithm to find the root of a git repo.
  • Manpage is built in HTML as well as Roff and included in releases (more useful than roff on windows).
  • Notify updated to latest patch in lockfile.
  • #82 Command/arguments processing is documented clearly in the manpage.
watchexec - 1.15.0

Published by github-actions[bot] over 3 years ago

  • CI and releases switch from Travis to Github Actions.
  • #178 Add arm-unknown-linux-gnueabihf and aarch64-unknown-linux-gnu builds.
  • #180 Add --changes-only option to print what changes (for debugging purposes, not for consuming).
  • Add --shell=SHELL and deprecate --no-shell.
  • The above allows to use powershell instead of cmd (--shell=powershell), which solves #80. On Windows, powershell will become the CLI default in v2.0, and is the new default right now in the library.
  • Undocument --kill from the man page, help, and completion. It will be removed in v2.0.
  • In the library, Args is renamed to Config and the old name deprecated.
  • In the library, get_args is deprecated in the view to be removed at some point (and only exist in the CLI).
  • In the builder, durations are now Durations instead of integers of milliseconds.
  • In the builder, restart and watch_when_idle are deprecated and replaced with on_busy_update which clarifies the behaviour when receiving updates while a command is running.
  • Add --on-busy-update= option to expose that builder option.
  • Deprecate --watch-when-idle (ref #123) in favour of --on-busy-update=do-nothing.
  • Add binstall metadata.
  • Add DEB packages for every linux build.
  • Increase MSRV to 1.43.0.
watchexec - 1.14.1: tweaks

Published by passcod about 4 years ago

  • fdb0cfb Soft-deprecate (in documentation only) Args.debug as it's not used any more.
  • #163 Add a manifest on Windows to transparently opt-in to long path support when supported. This is a cli change only and is not present in downstream executables (see associated commits for how to do it for your application).
  • #165 Fix help text and documentation to mention that -w can be used to watch files as well as folders.
  • #168 Drop default debounce time to 300ms. This is an experiment to gain testing on a lower value! Please report any issues. If it goes well the default will be dropped again later on.
watchexec - 1.14.0: environmental story-telling

Published by passcod over 4 years ago

  • #157 Error and exit gracefully when the subprocess's environment would be too large (as a result of too many changes being added to the WATCHEXEC_* environment variables instead of throwing a cryptic message ("Argument list too long")
  • #157 Add --no-environment to disable the WATCHEXEC_* variables being set, to avoid the above situation completely.
  • #157 Add --no-meta to disable only "metadata" events from being reported as above, which mitigates the above situation.
  • #160 โš ๏ธ Stop initialising the logger in the library code. Downstream users will need to initialise their own logger if they want debug/warn output. As a reminder, the library API is not considered in semver here, and downstream users are encouraged to specify exact versions: watchexec = "=1.14.0".
watchexec - 1.13.1: bug in new gitignore code

Published by passcod over 4 years ago

  • passcod/cargo-watch#149: if watched directory didn't contain a .git folder, thread would block (infinite loop)
watchexec - 1.13.0: gitignores in subdirectories (first pass)

Published by passcod over 4 years ago

  • #147: .gitignore files are now looked at in children as well as parents, the latter being very much not what should happen, but I'm kinda stuck with it at the moment to avoid breaking behaviour, eeech
  • #150: clarity around time units in the interface
  • Deps: notify (patch), globset (patch), clap (patch), nix (major: 0.15 โ†’ 0.17)
watchexec - 1.12.0: when is the watcher not watching?

Published by passcod almost 5 years ago

  • #142: Change ignore globbing to behave as the readme documents: -i foo now matches the foo folder and descendants, instead of having to specify -i foo/**
  • #141, #123: Introduce a --watch-when-idle option that ignores events emitted while the command is running. This may help ignore changes made by the command itself (#40), though it of course also ignores all other changes during that time.
watchexec - 1.11.1: become owned again

Published by passcod almost 5 years ago

  • Revert a change that made a type borrowed instead of the more sane (and more flexible) owned
watchexec - 1.11.0: sharing in ignorance

Published by passcod almost 5 years ago

  • Support for .ignore files (#127)
  • zsh completions in tree and releases (#130)
  • Semver policy for library written down (#135)
  • A new builder for Args (#135)
  • More flexible Handler trait (#133)
  • Rust Edition 2018
  • MSRV bumped to 1.38
  • Builds done with --locked for reproducibility (#131)
  • Windows builds moved to Travis
  • MSVC release builds are back
  • Linux and macOS builds use xz compression
  • Lots of lints enabled
  • Some typos fixed (#128, #129)
watchexec - 1.10.3: a new man

Published by passcod about 5 years ago

  • The man page was brought up-to-date to new options and a hint to use -- (#125)
watchexec - 1.10.2: small but mighty ignore fix

Published by passcod over 5 years ago

  • Always canonicalise paths, fixing a bug where some ignores would sometimes fail to apply (#113)
  • Some dependency updates (#115, #116, 7ed5ea577793d44be574031ba8a408acba8b0699)
  • Crate is somewhat smaller (#117)
watchexec - 1.10.1

Published by passcod over 5 years ago

  • Fix crash on some error conditions. (#111)
  • Clear the screen on initial run again (4918b12)
watchexec - 1.10.0: Fixes, updates, some more API surface

Published by passcod over 5 years ago

New API features

The API now enables:

  • parsing a command line string into watchexec Args
  • writing one's own handler to react to changes
  • a lot more errors to be caught instead of panicking

This also has creates two minor breaking changes:

  • Args's paths field is now a Vec<PathBuf> rather than a Vec<String>
  • cli::get_args() returns a Result rather than nothing

This was done in #105, prompted by #104 and #103.

Clap update

This formalises the fix to #76.

Support commands that allocate their own TTY

Through setsid, thanks to @Mange (#102).

Fixes #47 and some other issues downstream.

An attempt to fix some issues clearing screens under some Windows configurations

These are hard to guess at / repro. Maybe it helped #99.

Dependency upgrades

  • Notify 4.0.7 brings in some fixes, notably a performance/battery-saving optimisation on Linux.
  • Regex 1.1.0 brings in some performance improvements for (git)ignore patterns

Some progress towards manual restarts

As part of the API changes, file-triggered runs and manual runs are now explicitly differentiated, which will help when eventually implementing #67.

watchexec - 1.9.2: Oh no! (Reverted some changes)

Published by passcod about 6 years ago

My bad. My changes related to whitespace handling completely broke several use cases, e.g.:

  • watchexec -- 'echo foo; echo bar'

See discussion on #82.

This release reverts (comments out) those parts, but keeps everything else.

watchexec -

Published by passcod about 6 years ago

  • #74 โ€” Watchexec no longer panics on missing folders โ€” patch1, 2
  • #95 โ€” Fix issues with whitespace in commands โ€” patch2
  • #96 โ€” Add install instructions for Arch Linux โ€” docs
  • Create a Debian package on release โ€” releng
  • Add install instructions for Debian โ€” docs

1: Other changes were added following this to convert more panics into normal errors: some glob parsing errors, and file watcher initialisation errors.

2: These changes also cause a breaking changes to the library interface, but this is not considered in the version numbers (i.e. if you use it, pin it). From cursory investigation only cargo-watch is a consumer and changes there in consequence are coordinated.

watchexec -

Published by passcod about 6 years ago

First release by @passcod! This release is merging in a variety of long-waiting improvements, but is otherwise fairly conservative.

  • #77 โ€” Better default ignore patterns for Python, Emacs, and Vim โ€” patch
  • #89 โ€” On Linux, statically-compiled musl builds are now provided โ€” releng
  • #90 โ€” WATCHEXEC_*_PATH environment variables are now accurately documented โ€” docs
  • #91 โ€” On Windows, watchexec can now be installed using scoop.sh โ€” docs
  • #92 โ€” Support OpenBSD 6.3+ โ€” patch
  • #93 โ€” On Linux, fallback to polling if inotify limit is reached โ€” minor
watchexec - https://github.com/watchexec/watchexec/releases/tag/1.8.6

Published by mattgreen about 7 years ago

watchexec - https://github.com/watchexec/watchexec/releases/tag/1.8.5

Published by mattgreen about 7 years ago

watchexec - https://github.com/watchexec/watchexec/releases/tag/1.8.4

Published by mattgreen over 7 years ago