Igniter often fails silently

Hmm…this is weird.

Given a simple alias:

  defp aliases do
    [
      foo: [
        fn x ->
          IO.inspect(x)

          :ok
        end
      ]
    ]
  end

that prints out its argv, if you do:

mix foo helpdesk \ --install ash,ash_postgres \ --with phx.new \ --extend postgres \ --example 

it prints out:

["helpdesk", " --install", "ash,ash_postgres", " --with", "phx.new",
 " --extend", "postgres", " --example"]

notice the extra spaces at the head of the flags. This feels like some strange behavior of \?

If I add some OptionParser code in that alias:

OptionParser.parse!(x, strict: [install: :string])

it does not work if it gets a flag with a leading space. So I’m pretty sure thats why it also doesn’t work in igniter.

@kamaroly I think you should update the instructions in your post to use newlines after the \ or just remove the \ as they are only used in our examples to separate a task over multiple lines.

@josevalim This could be fixed in OptionParser or Mix also? Like should OptionParser or Mix trim leading whitespace? Or just OptionParser be adjusted to ignore leading whitespace?