{"id":17654905,"url":"https://github.com/grandchild/watchexec","last_synced_at":"2025-08-18T08:07:41.699Z","repository":{"id":141009963,"uuid":"128211310","full_name":"grandchild/watchexec","owner":"grandchild","description":"Run a command whenever files change","archived":false,"fork":false,"pushed_at":"2018-04-05T13:44:47.000Z","size":7,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-30T09:28:54.048Z","etag":null,"topics":["continuous","continuous-testing","development","shell","watch","watcher"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/grandchild.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-04-05T13:37:10.000Z","updated_at":"2020-03-30T04:03:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"7c06a4f6-1532-452a-b024-4b980b4a45d9","html_url":"https://github.com/grandchild/watchexec","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/grandchild/watchexec","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grandchild%2Fwatchexec","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grandchild%2Fwatchexec/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grandchild%2Fwatchexec/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grandchild%2Fwatchexec/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grandchild","download_url":"https://codeload.github.com/grandchild/watchexec/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grandchild%2Fwatchexec/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270962391,"owners_count":24675965,"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","status":"online","status_checked_at":"2025-08-18T02:00:08.743Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["continuous","continuous-testing","development","shell","watch","watcher"],"created_at":"2024-10-23T12:40:17.142Z","updated_at":"2025-08-18T08:07:41.674Z","avatar_url":"https://github.com/grandchild.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WatchExec\n\n#### Purpose\nA command needs to be run whenever its source files change. This small script\nuses `inotifywatch` to run a specified command, or list of commands, whenever\nthat happens.\n\n#### Prerequisites\nInstall the ```inotify-tools``` package. It contains ```inotifywatch```.\n\n#### Example\n```bash\n# Regenerate PDF when latex changes:\n./watchexec.py \"pdflatex -halt-on-errors %f \u003e /dev/null\"\n\n# Compile and test when the files in src change:\n./watchexec.py -p ./src make \"make test\"\n```\n\n#### Usage\n```\nusage: watchexec.py [-h] [-p PATH] [-o] [-i] [-I [DIR [DIR ...]]] [-d]\n                    [commands [commands ...]]\n\nRun command whenever files in the path change.\n\npositional arguments:\n  commands              Specify the command(s) to run on the changed file. Use\n                        %f to refer to the file inside the command. (default:\n                        ['echo %f'])\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -p PATH, --path PATH  Directory or file to watch. (default: .)\n  -o, --once            Run the task only on the first change. Then exit.\n                        (default: False)\n  -i, --initial         Run the task once initially, regardless whether there\n                        are any changes. (default: False)\n  -I [DIR [DIR ...]], --ignore-dirs [DIR [DIR ...]]\n                        List of directories which are not watched. (default:\n                        ['.git', '.svn'])\n  -d, --debug           Show debug info. (default: False)\n```\n\n#### License\n\n[\u003cimg src='https://img.shields.io/badge/license-CC0-blue.svg'/\u003e](https://creativecommons.org/publicdomain/zero/1.0)\n\nThis is free software, and to the extent possible under law, all copyright and related or neighboring rights to this work are waived.\nYou may use this code, or parts of it, freely and *without* attribution for any purpose.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrandchild%2Fwatchexec","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrandchild%2Fwatchexec","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrandchild%2Fwatchexec/lists"}