Current section
Files
Jump to
Current section
Files
lib/ielixir.ex
defmodule IElixir do
@moduledoc """
This is documentation for IElixir project.
"""
use Application
alias IElixir.Utils
@doc false
def start(_type, _args) do
conn_info =
Application.get_env(:ielixir, :connection_file)
|> Utils.parse_connection_file()
freeze_db_config()
{:ok, ctx} = :erlzmq.context()
ielixir_path = File.cwd!()
File.cd!(Application.get_env(:ielixir, :working_directory, File.cwd!()))
IElixir.Supervisor.start_link(conn_info: conn_info, ctx: ctx, starting_path: ielixir_path)
end
# SQLite relative pathes are resolved before change for an working directory
defp freeze_db_config do
case Application.get_env(:ielixir, IElixir.Repo) do
config when is_list(config) ->
Application.put_env(
:ielixir,
IElixir.Repo,
Keyword.update(config, :database, nil, fn
nil -> nil
relative_path when is_binary(relative_path) -> Path.expand(relative_path)
end)
)
_ ->
:nothing_to_change
end
end
end