watcheagle: A Simple File Watcher and Process Restarter (Fork of watchcat)
watcheagle is a lightweight command-line tool that monitors a directory for file changes and automatically restarts a specified process when a modification is detected. It's designed for development environments where you want to automatically reload your application on code changes. This project is based on the original watchcat but has been simplified and optimized for ease of use.
Goal
The primary goal of watcheagle is to provide a simple, reliable, and efficient way to automatically restart a process when files in a directory change. This is useful for rapid development cycles, automatically testing code, or automatically refreshing content on file updates.
Key Features
- Easy to Use: Simple command-line interface.
- Automatic Process Restart: Restarts your application whenever relevant files are modified.
- Fork of watchcat: Leaner and more straightforward, building upon the foundation of watchcat.
- Optional Source Directory: Specify the directory to watch, defaulting to the current directory.
Installation
pip install watcheagle
Usage
Invoke watcheagle from the command line, providing the command to execute and optionally the directory to watch.
watcheagle <command_to_execute> [--source <directory>]
Examples
-
Restarting a Python script in the current directory:
watcheagle python main.py
This command will execute
python main.pyand watch for changes in the current directory. Any file modification will trigger a restart of themain.pyscript. -
Restarting a Node.js application monitoring a specific directory:
watcheagle node app.js --source ./src
This command will execute
node app.jsand monitor the./srcdirectory. -
Using with a shell script:
watcheagle ./build_and_run.sh --source ./code
This command assumes you have a
build_and_run.shscript that builds your project and then runs it. It will watch the./codedirectory for changes. -
Monitoring current directory with react application
watcheagle yarn start --source ./
This is equivalent to running
yarn start, and the tool will restart yarn if a file is changed in the current directory
Optional Arguments
--source <directory>: Specify the directory to watch for changes. If not provided,watcheagledefaults to the current working directory.
.watchignore (Excluding Files and Directories - Original watchcat feature)
To exclude specific files or directories from being monitored, create a .watchignore file in the root directory being watched. Use fnmatch patterns. The changes may occur as implemented in watchcat original(exclude implementation).
Example .watchignore Usage
# Ignore the logs directory and its output
logs/
*.log
# Ignore temp files
temp_*
Contributing
Contributions are welcome! Feel free to fork the repository, make improvements, and submit pull requests.
License
This project is under the MIT License.
Metadata
Release files for watcheagle 1.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| watcheagle-1.0.2.tar.gz | 8.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| watcheagle-1.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.0 kB
Release files / watcheagle-1.0.2.tar.gz
| Download URL | watcheagle-1.0.2.tar.gz |
|---|---|
| Size | 8.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
47a020daaf4e307c5490a2464b410fde51c1746ae0f3ce59f103928d341d13b6
|
|
BLAKE2b-256 checksum How to use checksums |
d09fcebf3be0c7f9650bdda8a9a5d0682ae4c227b42c4877a0306b065b9ec9bc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.8
|
Release files / watcheagle-1.0.2-py3-none-any.whl
| Download URL | watcheagle-1.0.2-py3-none-any.whl |
|---|---|
| Size | 8.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ae193841a1a24c4c9435abe943e316192c1a61efbfd9c90a4fff2ee1515e6d25
|
|
BLAKE2b-256 checksum How to use checksums |
2dc5d72d8b5fbfa5fc46524497c23c1a30442d6f5db73fb0c174f001a1305ffe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.8
|