{"id":18775951,"url":"https://github.com/mauri870/iowatch","last_synced_at":"2025-09-01T22:31:30.298Z","repository":{"id":46896240,"uuid":"163340920","full_name":"mauri870/iowatch","owner":"mauri870","description":"Cross-platform way to run arbitrary commands when files change","archived":false,"fork":false,"pushed_at":"2023-02-12T23:36:21.000Z","size":106,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-07T19:52:53.790Z","etag":null,"topics":["entr","file-changes","rust"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mauri870.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-12-27T22:22:20.000Z","updated_at":"2024-06-16T02:52:23.000Z","dependencies_parsed_at":"2024-11-07T19:45:44.722Z","dependency_job_id":"ffdbf804-1660-49ce-bafc-60c78d9346de","html_url":"https://github.com/mauri870/iowatch","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mauri870%2Fiowatch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mauri870%2Fiowatch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mauri870%2Fiowatch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mauri870%2Fiowatch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mauri870","download_url":"https://codeload.github.com/mauri870/iowatch/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231719803,"owners_count":18416218,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["entr","file-changes","rust"],"created_at":"2024-11-07T19:44:22.274Z","updated_at":"2025-09-01T22:31:30.291Z","avatar_url":"https://github.com/mauri870.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# iowatch\n\nCross platform way to run arbitrary commands when files change.\n\n## Installation\n\nDownload one of the prebuilt binaries from the relases page or install it with cargo:\n\n```bash\ncargo install --git https://github.com/mauri870/iowatch\n```\n\n## Usage\n\nDownload a prebuilt binary from the releases page or follow the compilation steps.\n\n```bash\niowatch command\n```\n\nExample:\n\n```bash\ntouch /tmp/file.txt\niowatch -f /tmp/file.txt -p echo '\u003e file changed!'\n\n# in another terminal...\necho 'that is a new line' \u003e\u003e /tmp/file.txt\n```\n\n\u003e Note: iowatch has builtin support for .[git]ignore files ;)\n\nFor commands that uses builtins, pipes or output redirection that needs to run in a shell, there's a `-s` flag that uses the default system shell:\n\n```bash\nfind /tmp -type f -name '/tmp/*.txt' | iowatch -s 'echo Hello | rev'\n```\n\nIt also watch changes recursively if a directory is provided!\n\n```bash\necho \"dir/to/watch\" | iowatch -R echo '!'\n```\n\nA real world use case for example is the linting of a project with hot reload:\n\n```bash\necho \"./src\" | iowatch -R yarn run lint\n```\n\nOr hot reload of a Go project:\n\n```bash\necho $PWD | iowatch -R go run .\n```\n\nOr auto compile a Latex project whenever an important file changes:\n\n```bash\nfind . -type f \\( -name \"*.tex\" -o -name \"*.bib\" -o -name \"*.png\" \\) | iowatch tectonic paper.tex\n```\n\n## Compilation\n\n```bash\ncargo build --release\n```\n\nFor arch linux users:\n\n```bash\nmakepkg -sif\n```\n\n# Tests\n\nWe use bats for testing, you can run them with:\n\n```bash\ncargo build --release\nbats ./tests\n```\n\n# Debugging\n\n```bash\nRUST_LOG=debug iowatch\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmauri870%2Fiowatch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmauri870%2Fiowatch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmauri870%2Fiowatch/lists"}