Current section

Files

Jump to
ex_guard lib mix tasks guard.ex
Raw

lib/mix/tasks/guard.ex

defmodule Mix.Tasks.Guard do
@moduledoc """
ExGuard automates various tasks by running custom rules whenever file or directories are modified.
## Usage
usage: mix guard [--config=ExGuardfile]
help: mix help guard
## Installation
add `ex_guard` to `mix.exs`
def deps do
[{:ex_guard, "~> 0.0.4"}]
end
Create ExGuardfile in your root mix directory:
use ExGuard.Config
guard("unit-test")
|> command("mix test --color")
|> watch(~r{\\.(erl|ex|exs|eex|xrl|yrl)\\z}i)
|> ignore(~r/priv/)
Run `mix guard` and happy coding.
[Read more](https://github.com/slashmili/ex_guard).
"""
def run(args) do
case OptionParser.parse(args) do
{[config: config_file], _, _ } -> execute(config_file)
{[], [], []} -> execute("ExGuardfile")
_ ->
IO.puts "invalid option, try 'mix help guard'"
System.halt(1)
end
end
def execute(config_file) do
ExGuard.Config.start_link
ExGuard.start_link
ExGuard.Config.load(config_file)
:timer.sleep :infinity
end
end