Current section
Files
Jump to
Current section
Files
lib/mix/tasks/dockerize_init.ex
defmodule Mix.Tasks.Dockerize.Init do
alias IO.ANSI
require Logger
@moduledoc """
Initialize Dockerize configurations
Usage: `mix dockerize.init --app my_app`
Supported arguments:
* `--app`
* `--path`
* `--force`
* `--phoenix-assets` or `--no-phoenix-assets`
* `--elixir-version`
"""
def run(opts) do
parse_args(opts)
|> Keyword.put(:gen_command, Enum.join(["mix dockerize.init" | opts], " "))
|> Dockerize.Generate.gen()
end
defp parse_args(args) do
OptionParser.parse(args,
strict: [
app: :string,
force: :boolean,
phoenix_assets: :boolean,
elixir_version: :string,
path: :string
]
)
|> case do
{options, [], []} ->
options
{_, args, []} ->
IO.puts([
"Unrecognized arguments: ",
ANSI.red(),
Enum.map_join(args, " ", &Kernel.inspect/1),
ANSI.reset(),
"\n"
])
print_usage()
System.halt(1)
{_, _, invalid} ->
IO.puts(["Unrecognized options: ", ANSI.red(), inspect(invalid), ANSI.reset(), "\n"])
print_usage()
System.halt(1)
end
end
defp print_usage, do: Mix.Tasks.Help.run(["dockerize.init"])
end