# FileWatch 👀
Automatically run your commands each time you save a file.
Because TDD with [mix test.watch](https://github.com/lpil/mix-test.watch) is awesome🎉
- https://hex.pm/packages/file_watch
- https://hexdocs.pm/file_watch/FileWatch.html
## Usage
### Prerequisites
- On Linux you may need to install [`inotify-tools`](https://github.com/inotify-tools/inotify-tools).
- On Windows you need to install [`inotifywait.exe`](https://github.com/thekid/inotify-win).
### Installation
Install escript from hex or github,
(if you use asdf, after following. Don't forget to do `asdf reshim elixir`)
```
mix escript.install hex file_watch # Or mix escript.install github pojiro/file_watch
```
Or install from source build,
```
git clone https://github.com/pojiro/file_watch.git
cd file_watch
mix do escript.build, escript.install
```
### Get config template
config template, .fwatch.exs, will be generated under CWD.
configuration details are described in it.
```
fwatch --config-template
```
### Start watch
```
fwatch
```
## Acknowledgment
FileWatch uses or refs the following OSS and so on,
- uses [FileSystem](https://github.com/falood/file_system) for detecting file has been touched
- refs [mix test.watch](https://github.com/lpil/mix-test.watch) for architecture
- refs [Phoenix live-reload](https://github.com/phoenixframework/phoenix_live_reload) for debounce
## Other Info
I didn't know about `fswatch` until I developed FileWatch.
If FileWatch doesn't fit your needs, please check out [`fswatch`](https://github.com/emcrisostomo/fswatch).
---
Copyright © 2022 Ryota Kinukawa