Eye drops is an Elixir mix task used to watch file changes and run tasks in the command line for those files. You can read more about how to use it on my Github repository read me documentation.

The reason for doing this project was to get faster feedback from unit and acceptance tests in an Elixir project at work. With this running in the background, any updates to the code base the tests would run automatically. This was mostly inspired by working in JavaScript projects which have some sort of watch task built in e.g. npm or gulp. So Eye_Drops is like a watch task for Elixir projects.

There’s no need to limit the tasks to tests, Eye drops can be configured to run anything in the command line.

Here is an example eye_drops configuration:

config :eye_drops, 
  tasks: [
    %{
      id: :unit_tests,
      name: "Unit tests",
      run_on_start: true,
      cmd: "mix test",
      paths: ["lib/*", "test/*"]
    },
    %{
      id: :acceptance,
      name: "Acceptance tests",
      cmd: "mix acceptance",
      paths: ["lib/*", "features/*"]
    }
  ]

If you have any feedback you can post in Github issues or below in the comments.