lib/mix/tasks/harness.ex
defmodule Mix.Tasks.Harness do
@shortdoc "renders harness packages into the current directory"
@moduledoc """
Renders harness packages into the current directory
Configuration of which files to generate and link is according to the current
directory's harness manifest (`harness.exs`).
## Command line options
* `--no-compile` - skips the compilation of harness packages
* `--no-deps-check` - skips a check for out of date dependencies
"""
use Mix.Task
@impl Mix.Task
def run(args) do
path = "."
Mix.Task.run("harness.loadpaths", args)
# this is redundant past elixir 1.11+, can be removed when harness
# requires that as a minimum
unless "--no-compile" in args do
Mix.Task.run("harness.compile", [path])
end
Harness.Manifest.load(path)
Harness.Renderer.render(path)
end
end