defmodule PortingTools.ResourceLoc do use GenServer, restart: :transient require Logger def start_link(_) do GenServer.start_link(__MODULE__, nil, name: __MODULE__) end def init(_init_arg) do Logger.info("Initializing Resourceloc server @ #{__MODULE__}") {:ok, nil} end def resolve(str) do GenServer.call(__MODULE__, {:resolve, str}) end def handle_call({:resolve, str}, _from, state) do Logger.info("Got resolve request") try do ["mods", mod | rest] = String.trim(str) |> String.trim(<>) |> String.split("/", trim: true) {:reply, ~s, state} rescue MatchError -> {:reply, nil, state} end end end