{"id":21526769,"url":"https://github.com/dragonwasrobot/ex_rerun","last_synced_at":"2025-04-09T23:33:32.731Z","repository":{"id":33983556,"uuid":"165295547","full_name":"dragonwasrobot/ex_rerun","owner":"dragonwasrobot","description":"Rerun custom mix tasks on code modification","archived":false,"fork":false,"pushed_at":"2024-03-11T09:20:47.000Z","size":194,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-04-11T11:21:09.786Z","etag":null,"topics":["code-reload","elixir","mix"],"latest_commit_sha":null,"homepage":"https://hex.pm/packages/ex_rerun","language":"Elixir","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/dragonwasrobot.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2019-01-11T19:07:20.000Z","updated_at":"2024-04-15T08:49:52.993Z","dependencies_parsed_at":"2024-01-08T09:38:21.590Z","dependency_job_id":"29870cb5-8fda-46ee-944c-2804795b6bec","html_url":"https://github.com/dragonwasrobot/ex_rerun","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/dragonwasrobot%2Fex_rerun","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dragonwasrobot%2Fex_rerun/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dragonwasrobot%2Fex_rerun/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dragonwasrobot%2Fex_rerun/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dragonwasrobot","download_url":"https://codeload.github.com/dragonwasrobot/ex_rerun/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248130095,"owners_count":21052697,"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":["code-reload","elixir","mix"],"created_at":"2024-11-24T01:46:36.322Z","updated_at":"2025-04-09T23:33:32.708Z","avatar_url":"https://github.com/dragonwasrobot.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ExRerun\n\n### Status\n\n[![Build Status](https://travis-ci.org/dragonwasrobot/ex_rerun.svg?branch=master)](https://travis-ci.org/dragonwasrobot/ex_rerun)\n\nRecompiles mix project on any change to the project src files.\n\nThe initial version of this project is inspired by the - currently\nunmaintained - `remix` project by AgilionApps:\nhttps://github.com/AgilionApps/remix\n\n## Installation\n\nInstall `ex_rerun` by adding it as a dependency to `mix.exs`.\n\n```elixir\ndef deps do\n  [{:ex_rerun, \"~\u003e 0.3\", only: :dev}]\nend\n```\n\nIf developing a cmd line tool or similar project that does not involve a running\nprocess/server, using `mix run --no-halt` or `iex -S mix` still works for\nkeeping the `ex_rerun` process alive to monitor and recompile / retest your\ncode.\n\n## Configuration\n\nIt is possible to configure `ex_rerun` using the following parameters:\n\n\u003e Note: the example below shows the default values.\n\n```elixir\nconfig :ex_rerun,\n  scan_interval: 4000,\n  silent: false,\n  file_types: [\".ex\", \".exs\", \".eex\", \".json\"],\n  paths: [\"lib\", \"priv\"],\n  ignore_pattern: nil,\n  tasks: [:elixir]\n```\n\nwhere:\n\n- `scan_interval` specifies the number of ms to wait between rerun checks,\n- `silent` toggles whether to print the output of the `tasks` registered, every\n  time `ex_rerun` runs,\n- `file_types` lists which file types that will trigger a rerun when changed,\n- `paths` lists which folders to monitor,\n- `ignore_pattern` specifies a regular expression matching files that should to\n  be ignored even if they have a file type included in `file_types`, and\n- `tasks` enumerates the mix tasks to run each time a code modification\n  occurs, possible built-in values are: `:elixir`, `:test`, `:escript`,\n  where\n  + `:elixir` recompiles Elixir source code (same as `Mix.Tasks.Compile.Elixir`),\n  + `:test` reruns any mix tests in the project (same as `Mix.Tasks.Test`), and\n  + `escript` rebuilds a escript file (same as `Mix.Tasks.Escript.Build`).\n\nFurthermore, `tasks` can also include custom mix tasks. For example, the hex\npackage [elm_compile](https://hex.pm/packages/elm_compile) defines the\n`Mix.Tasks.Compile.Elm` task which allows mix to also compile Elm files in a mix\nproject. An example project config using `ex_rerun` and `elm_compile` might look\nlike so:\n\n```elixir\nconfig :ex_rerun,\n  file_types: [\".elm\", \".ex\", \".exs\", \".eex\", \".json\"],\n  paths: [\"lib\", \"priv\", \"web\"],\n  ignore_pattern: ~r{\\.?#(.*)},\n  tasks: [:elixir, Mix.Tasks.Compile.Elm]\n```\n\nAnother example of a custom mix task could be to generate API documentation for\na project based on a set of `RAML` files.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdragonwasrobot%2Fex_rerun","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdragonwasrobot%2Fex_rerun","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdragonwasrobot%2Fex_rerun/lists"}