portingtools/lib/cli.ex

32 lines
588 B
Elixir

defmodule Cli do
def call(command) do
case command do
"map" ->
input()
|> PortingTools.Mappings.map()
|> output(:map)
"resourceloc" ->
input()
|> PortingTools.ResourceLoc.resolve()
|> output(:map)
_ ->
raise "Invalid command!"
end
end
def input() do
IO.gets(nil) |> String.trim()
end
def output(response, type) do
case {response, type} do
{s, _} when is_binary(s) -> s
{nil, :map} -> "<unknown>"
{nil, :resourceloc} -> "<invalid>"
end
|> IO.puts()
end
end