Current section
Files
Jump to
Current section
Files
lib/mandate.ex
defmodule Mandate do
@moduledoc """
Documentation for `Mandate`.
"""
use Spark.Dsl,
default_extensions: [
extensions: [Mandate.Dsl]
],
opt_schema: [
as: [
type: {:one_of, [:mix_task]}
]
]
@impl Spark.Dsl
def handle_opts(opts) do
case Keyword.get(opts, :as) do
:mix_task -> mix_task()
_ -> quote(do: nil)
end
end
defp mix_task() do
quote do
use Mix.Task
# @moduledoc "Printed when the user requests `mix help echo`"
# @shortdoc "Echoes arguments"
# @persist {:simple_notifiers, unquote(opts[:simple_notifiers])}
# @requirements ["app.config"]
# @preferred_cli_env :test
@impl Mix.Task
def run(argv) do
Mandate.Info.root(__MODULE__)
|> IO.inspect()
end
end
end
@doc """
Hello world.
## Examples
iex> Mandate.hello()
:world
"""
def hello do
:world
end
end