{"id":23206040,"url":"https://github.com/bduffany/godemon","last_synced_at":"2025-08-19T02:32:51.329Z","repository":{"id":57657403,"uuid":"460508000","full_name":"bduffany/godemon","owner":"bduffany","description":"Automatically re-run a command when files change","archived":false,"fork":false,"pushed_at":"2024-03-09T17:31:13.000Z","size":382,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-04-24T05:16:23.233Z","etag":null,"topics":["devserver","file-watcher","file-watchers","go","golang","inotify","nodemon"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bduffany.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}},"created_at":"2022-02-17T16:06:27.000Z","updated_at":"2023-09-08T18:31:50.000Z","dependencies_parsed_at":"2024-03-09T18:31:05.671Z","dependency_job_id":"135237d3-8243-4863-881d-7794c3331902","html_url":"https://github.com/bduffany/godemon","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/bduffany%2Fgodemon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bduffany%2Fgodemon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bduffany%2Fgodemon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bduffany%2Fgodemon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bduffany","download_url":"https://codeload.github.com/bduffany/godemon/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230310083,"owners_count":18206458,"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":["devserver","file-watcher","file-watchers","go","golang","inotify","nodemon"],"created_at":"2024-12-18T16:46:47.853Z","updated_at":"2024-12-18T16:46:48.463Z","avatar_url":"https://github.com/bduffany.png","language":"Go","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/2414826/154606331-751abc5a-2c92-40d0-bc89-bd772397a14f.png\"\n       width=\"192\"\n       height=\"192\"\n       alt=\"Golang gopher mascot with little horns\" /\u003e\n\u003c/p\u003e\n\n# godemon\n\n![go test](https://github.com/bduffany/godemon/actions/workflows/test.yaml/badge.svg)\n[![License: Unlicense](https://img.shields.io/badge/license-Unlicense-blue.svg)](http://unlicense.org/)\n\ngodemon is a tool that runs a command, monitors for changes to files,\nand restarts the command automatically whenever files change.\n\nIt is great for:\n\n- Restarting a development server whenever you change source code\n- Running tests whenever you change source code\n- Mirroring a directory to another location, using a tool like `rsync`\n- Lots of other things!\n\nIt is inspired by [nodemon](https://github.com/remy/nodemon) which\nis a similar tool written in JavaScript.\n\n## Goals\n\n- **Generic**: Does not give preference to any language or framework (even\n  Go). Can run arbitrary comands when changing arbitrary files.\n- **Configurable**: There is no \"one size fits all\" approach to file\n  watchers, so godemon gives you fine-grained control over the paths that\n  are included or ignored. For more advanced users, it also lets you\n  control which signals are used to restart your process, since different\n  processes respond differently to different signals.\n- **Strong defaults**: godemon ships with a default ignore list and also\n  treats `.gitignore` files as additional ignore patterns. These defaults\n  can be turned off via config options.\n\n## Status\n\ngodemon has been tested on Mac and Linux. It has not yet been tested on\nWindows.\n\nThe command line interface and config file format are not yet stable.\n\n## Installation\n\nThe easiest way to install godemon is with the `go` CLI:\n\n```bash\ngo install github.com/bduffany/godemon/cmd/godemon@latest\n```\n\n## Basic usage\n\nThe `godemon` command can be used as follows:\n\n```\ngodemon [options ...] \u003ccommand\u003e [args ...]\n```\n\nBy default, the given command is executed whenever any file in the current\ndirectory changes.\n\n## Examples\n\nTo watch the current directory (recursively) and run a command on any\nchange:\n\n```bash\ngodemon command\n```\n\nTo watch multiple directories, use `--watch` or `-w`. **When using this\nflag, the current directory needs to be passed explicitly,** otherwise\nit's assumed that you only want to watch `/some/other/dir` (in this\nexample).\n\n```bash\ngodemon --watch . --watch /some/other/dir command\n```\n\nTo only restart on changes to certain paths or patterns, use `--only` or\n`-o`:\n\n```bash\ngodemon --only '*.ts' --only '*.tsx' command\n```\n\nTo ignore changes to certain paths or patterns, use `--ignore` or `-i`:\n\n```bash\ngodemon --ignore '**/build/**' --ignore '**/dist/**' command\n```\n\n## Default ignored patterns\n\nThe default ignored patterns are listed in\n[default_ignore.go](https://github.com/bduffany/godemon/tree/master/default_ignore.go).\n\nTo disable the default ignore list, pass `--no-default-ignore`.\n\nBy default, godemon also ignores patterns that are listed in `.gitignore`\nfiles for any watched paths which are contained in a Git repository. To\ndisable this behavior, pass `--no-gitignore`.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbduffany%2Fgodemon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbduffany%2Fgodemon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbduffany%2Fgodemon/lists"}