32 lines
588 B
Elixir
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
|