if Code.ensure_loaded?(Igniter) do defmodule Mix.Tasks.CircuitsFt232h.Install do @moduledoc """ Configures the host application to use the FT232H backends for `circuits_i2c`, `circuits_spi`, and `circuits_gpio` in the `:dev` environment. mix igniter.install circuits_ft232h """ @shortdoc "Wire up CircuitsFT232H backends in config/dev.exs" use Igniter.Mix.Task @impl Igniter.Mix.Task def info(_argv, _composing_task) do %Igniter.Mix.Task.Info{ group: :circuits_ft232h, example: "mix igniter.install circuits_ft232h", schema: [], aliases: [] } end @impl Igniter.Mix.Task def igniter(igniter) do igniter |> Igniter.Project.Config.configure( "dev.exs", :circuits_i2c, [:default_backend], CircuitsFT232H.I2C.Backend ) |> Igniter.Project.Config.configure( "dev.exs", :circuits_spi, [:default_backend], CircuitsFT232H.SPI.Backend ) |> Igniter.Project.Config.configure( "dev.exs", :circuits_gpio, [:default_backend], CircuitsFT232H.GPIO.Backend ) end end else defmodule Mix.Tasks.CircuitsFt232h.Install do @moduledoc "Install task for CircuitsFT232H — requires the `:igniter` dep." @shortdoc "Wire up CircuitsFT232H backends in config/dev.exs" use Mix.Task @impl Mix.Task def run(_argv) do Mix.shell().error(""" `mix circuits_ft232h.install` requires the `igniter` package. Add `{:igniter, "~> 0.8"}` to your deps and run `mix deps.get`, or install via `mix igniter.install circuits_ft232h`. """) exit({:shutdown, 1}) end end end