{"id":16774490,"url":"https://github.com/parasyte/rundogd","last_synced_at":"2025-03-16T17:29:12.451Z","repository":{"id":151460618,"uuid":"72244512","full_name":"parasyte/rundogd","owner":"parasyte","description":"A filesystem watcher-restarter daemon","archived":false,"fork":false,"pushed_at":"2016-11-01T00:10:00.000Z","size":25,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-23T04:25:32.111Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/parasyte.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2016-10-28T21:41:17.000Z","updated_at":"2016-10-28T22:27:46.000Z","dependencies_parsed_at":"2023-05-23T15:15:20.981Z","dependency_job_id":null,"html_url":"https://github.com/parasyte/rundogd","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parasyte%2Frundogd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parasyte%2Frundogd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parasyte%2Frundogd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parasyte%2Frundogd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/parasyte","download_url":"https://codeload.github.com/parasyte/rundogd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243905340,"owners_count":20366808,"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":[],"created_at":"2024-10-13T06:49:16.016Z","updated_at":"2025-03-16T17:29:12.446Z","avatar_url":"https://github.com/parasyte.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `rundogd`\n\n## About `rundogd`\n\nPronounced \"run dogged\".\n\n`rundogd` is a filesystem watcher-restarter daemon. Its main task is watching a path on the filesystem for any changes (files and folders created, deleted, moved, and modified) and automagically restarts the provided command on any of these events.\n\n## Getting `rundogd`\n\n`rundogd` source code is hosted on bitbucket::\n\n    $ git clone https://bitbucket.org/parasyte/rundogd.git\n\n### Dependencies\n\n* [Python](http://www.python.org/) 2.7+\n* [watchdog](http://pypi.python.org/pypi/watchdog) 0.8.3+\n\n## Usage\n\n    usage: rundogd [options] command\n\n    Filesystem watcher-restarter daemon.\n\n    optional arguments:\n      -h, --help            show this help message and exit\n      -p PATH, --path PATH  recursively watch for file changes in this path\n      -r, --persist         continue watching files after the command exits\n      -e EXCLUDE, --exclude EXCLUDE\n                            exclude files matching the given pattern\n      -d, --exclude-dir     exclude changes to directories\n      -o ONLY, --only ONLY  only watch files matching the given pattern\n      -w WAIT, --wait WAIT  a delay time (in seconds) to wait between file changes\n      --stdout STDOUT       redirect stdout to this file\n      --stderr STDERR       redirect stderr to this file\n      -v, --verbose         enable verbose output; use more v's for more verbosity\n      --version             show program's version number and exit\n\n`rundogd` takes one optional argument (`-p`) to specify the path that it will watch. Use `-p` multiple times to watch a list of paths. If omitted, the path will be inferred from the command, or it will use the current working directory.\n\nThe `-e` switch can be used to exclude file patterns. And `-o` is used to watch only specific file patterns.\n\n## Examples\n\n```bash\n$ rundogd -p src/data python src/main.py\n```\n\nStarts `python src/main.py` and restarts it every time any files are changed in the directory `src/data`.\n\n----\n\n```bash\n$ rundogd -p src/data -p src/tmp python src/main.py\n```\n\nStarts `python src/main.py` and restarts it every time any files are changed in the directories `src/data` or `src/tmp`.\n\n----\n\n```bash\n$ rundogd -p src/data -p src/tmp -e '*.pyc' python src/main.py\n```\n\nStarts `python src/main.py` and restarts it every time any files are changed in the directories `src/data` or `src/tmp`, except for \\*.pyc files, which are automatically regenerated when starting Python after the source files have changed. This can be used to prevent a \"double startup\" when working on Python.\n\n----\n\n```bash\n$ rundogd /home/me/src/program\n```\n\nStarts `/home/me/src/program` and restarts it every time any files are changed in the directory `/home/me/src`.\n\n----\n\n```bash\n$ rundogd -r ls -al\n```\n\nStarts `ls -al` and restarts it every time any files are changed in the current working directory. Uses the `persist` option to continue watching for file changes even after `ls` exits.\n\n## Recipes\n\nGit repos are updated often, even when doing a `git status`. This will help:\n\n```\n-e '*/.git' -e '*/.git/*'\n```\n\n----\n\nPython developers should exclude the files that Python compiles automatically:\n\n```\n-e '*.pyc' -e '*.pyo'\n```\n\n----\n\nWhen developing on Mac OS X on non-HFS file systems, the following patterns will exclude the special files that get created and updated automatically:\n\n```\n-e '.DS_Store' -e '.Trashes' -e '._*'\n```\n\n----\n\nSimilar special files on Windows:\n\n```\n-e 'Thumbs.db' -e 'desktop.ini'\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparasyte%2Frundogd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fparasyte%2Frundogd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparasyte%2Frundogd/lists"}