1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
//! ## Install
//!
//! `fwatcher` is implemented by rust language,
//! so you need `cargo` command:
//!
//! ```
//! cargo install fwatcher
//! ```
//!
//! `fwatcher` will be installed in your cargo binary directory(`~/.cargo/bin/`).
//!
//!
//! ## CLI
//!
//! `fwarcher` can be use as a command:
//!
//! ```
//! $ fwatcher -h
//! Usage:
//!     fwatcher [options] CMD
//!
//! Options:
//!     -h, --help          Display this message
//!     -v, --version       Print version info
//!     -r, --restart       Auto restart command, default to false
//!     -d, --directory <dir>
//!                         Watch directory, default to current directory
//!     -p, --pattern <pattern>
//!                         Watch file glob pattern, default to "*"
//!     -P, --exclude_pattern <exclude_pattern>
//!                         Watch file glob pattern exclusively, default null
//!         --delay <second>
//!                        Delay in seconds for watcher, default to 2
//!     -i, --interval <second>
//!                         Interval in seconds to scan filesystem, default to 1
//! ```
//!
//! For example to search recursively for python files in the current directory
//! and run pytest when a file is updated:
//!
//! ```
//! fwatcher -p "**/*.py" pytest --maxfail=2
//! ```
//!
//! you can also use more than one directory/pattern option:
//!
//! ```
//! fwatcher -d src -d test -p "**/*.py" -p "**/*.html" pytest --maxfail=2
//! ```
//!
//! The `--restart` option kills the command
//! if it's still running when a filesystem change happens.
//! Can be used to restart locally running webservers on updates,
//! or kill long running tests and restart on updates:
//!
//! ```
//! fwatcher -d src -p "**/*.py" --restart run_forever_cmd
//! ```