CLI tool for monitoring changes, additions, removals in files and directories and optionally running commands on specified operations.
Project description
📁🔍 fdw - CLI tool for watching files and directories changes
Command line tool for monitoring changes, additions and removals in files and directories. It also offers the option to run commands on specified operations.
Instalation
No external dependecies required! 🚫🧰
$ pip3 install file-directory-watcher
Tips:
- 💡 It is recommended to install it globally, so you can use it from anywhere.
Usage
fdw
is a command-line tool and does not provide any importable modules.
$ fdw pattern [pattern ...] [--exclude pattern ...] [options]
Examples
Simple
$ fdw "**/*.py" --interval 1s --on-file-change "echo Python file changed"
Tips:
- 💡 Surround patterns with quotes to prevent shell expansion.
- 💡 You can use short versions of options. e.g.
-i
instead of--interval
.
Advanced
$ fdw \
"src/**/*.py" \
--exclude "/home/username/project/src/**/__pycache__/**/*" \
--interval 1s \
--background \
--only file_added \
--on-file-add "git add %relative_path" \
--verbosity full \
Tips:
- 💡 Instead of exluding a folder with large number of files, try including only the files you are interested in. This will improve the performance and reduce CPU usage.
Options
Patterns for files and directories
Option | Value | Description |
---|---|---|
(positional) | pattern |
Glob pattern to watch for changes. You can specify one or more patterns. |
--exclude |
Glob patterns to exclude from watching. You can specify one or more exclusion patterns. |
Configuration options
Option | Value | Description |
---|---|---|
-i ,
--interval
|
e.g. 0.5s , 1m , 2h30m , 1d12h |
Interval between running the watcher. Default: 1s . |
-d ,
--delay
|
Delay between files. Default: 0s . |
|
-b ,
--background
|
- |
Run commands in the background as non-blocking processes.
The fdw process itself is stil in foreground.
|
--only |
file_changed ,
file_added ,
file_modified ,
file_removed ,
directory_changed ,
directory_added ,
directory_modified ,
directory_removed
or short versions fc ,
fa ,
fm ,
fr ,
dc ,
da ,
dm ,
dr
|
Operations to watch for. Default: all . |
--ignore |
Operations to ignore. Default: none . |
|
--fcm ,
--file-compare-method
|
mtime ,
size ,
md5 ,
mode ,
uid ,
gid
|
Methods to compare files. Default: mtime |
--dcm ,
--directory-compare-method
|
mtime ,
mode ,
uid ,
gid
|
Methods to compare directories. Default: mtime |
-v ,
--verbosity
|
limited ,
normal ,
full
|
Set output verbosity. Default: normal . |
--nc ,
--no-color
|
- | Disable colored output. |
Commands to run on specified operations
Option | Value | Description |
---|---|---|
--oc ,
--on-change
|
command |
Commands to run when a file or directory is added, modified, or removed. |
--oa ,
--on-add
|
Commands to run when a file or directory is added. | |
--om ,
--on-modify
|
Commands to run when a file or directory is modified. | |
--or ,
--on-remove
|
Commands to run when a file or directory is removed. | |
--ofc ,
--on-file-change
|
Commands to run when a file is added, modified, or removed. | |
--ofa ,
--on-file-add
|
Commands to run when a file is added. | |
--ofm ,
--on-file-modify
|
Commands to run when a file is modified. | |
--ofr ,
--on-file-remove
|
Commands to run when a file is removed. | |
--odc ,
--on-directory-change
|
Commands to run when a directory is added, modified, or removed. | |
--oda ,
--on-directory-add
|
Commands to run when a directory is added. | |
--odm ,
--on-directory-modify
|
Commands to run when a directory is modified. | |
--odr ,
--on-directory-remove
|
Commands to run when a directory is removed. |
For all commands, you can use the following variable expansions:
Variable | Expanded value | Description |
---|---|---|
%name |
e.g. README.md |
The name of the file or directory. |
%relative_path |
e.g. ../../files/README.md |
The relative path of the file or directory. |
%absolute_path |
e.g. /home/user/files/README.md |
The absolute path of the file or directory. |
Other options
Option | Value | Description |
---|---|---|
--version |
- | Shows program's version number and exit. |
-h , --help |
- | Show help message and exit. |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
file-directory-watcher-0.0.10.tar.gz
(115.4 kB
view details)
Built Distribution
File details
Details for the file file-directory-watcher-0.0.10.tar.gz
.
File metadata
- Download URL: file-directory-watcher-0.0.10.tar.gz
- Upload date:
- Size: 115.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 26fd4c1b86e1e845f5a19a50885bd0a16e9d76d31f86eb2c9399cf31906e1853 |
|
MD5 | 137a4b5a058804136f88f9b779e4534c |
|
BLAKE2b-256 | 68a4a58c37d3e9c5c4a04e149590812662b72886a9d8bbe58489d92dfafe98de |
File details
Details for the file file_directory_watcher-0.0.10-py3-none-any.whl
.
File metadata
- Download URL: file_directory_watcher-0.0.10-py3-none-any.whl
- Upload date:
- Size: 12.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95a7bb305f791cf62598da3e07d7e6554e383178b4ecb1d7cf4bf3f811712d54 |
|
MD5 | 491049af4a3676e0fa4851a93cab6125 |
|
BLAKE2b-256 | 668f975b01818ae45292e7b0c6585693e7582c8d6ca29d26b2eacd69eeb8d9e9 |