Igniter - A code generation and project patching framework

Hey @zachdaniel! I’m finally taking Igniter for a spin on a set of component generators. There is already a Mix.Task that takes some EEx modules & HEEx templates and injects them into an application. It’ll be interesting to refactor that task to use Igniter.

Where I’m stuck, though, is on a task for adding deps to mix.exs. I added :igniter as a dependency in the generator repo (Constructor), and used mix igniter.gen.task your_app.task.name to generate the task code. After building and installing the archive, I run the new task and get an error:

~/projects/yolo  constructor_components ✔                                                                                            12d0h  
▶ mix constructor.install.deps
** (UndefinedFunctionError) function Igniter.Mix.Task.Info.global_options/0 is undefined (module Igniter.Mix.Task.Info is not available)
    Igniter.Mix.Task.Info.global_options()
    lib/mix/tasks/constructor.install.deps.ex:2: Mix.Tasks.Constructor.Install.Deps.run/1
    (mix 1.17.2) lib/mix/task.ex:495: anonymous fn/3 in Mix.Task.run_task/5
    (mix 1.17.2) lib/mix/cli.ex:96: Mix.CLI.run_task/2
    /Users/owen/.asdf/installs/elixir/1.17.2-otp-27/bin/mix:2: (file)
  • Inside Constructor’s mix.exs, do I need anything more than {:igniter, "~> 0.3"}?
  • Does Igniter need to be a dependency in the Yolo app?