Current section
Files
Jump to
Current section
Files
lib/loaders/file.ex
defmodule Weave.Loaders.File do
use Weave.Loader
def load_configuration() do
with file_directory <- Application.get_env(:weave, :file_directory, :weave_no_directory),
handler <- Application.get_env(:weave, :handler, :weave_no_handler),
file_directory <- String.trim_trailing(file_directory, "/"),
true <- File.exists?(file_directory),
{:ok, files} <- File.ls(file_directory)
do
Logger.debug("Found configuration parameters: #{inspect files}")
Enum.each(files, fn (file_name) ->
load_configuration(file_directory, file_name, handler)
end)
else
:weave_no_directory -> Logger.warn("Tried to load configuration, but {:weave, :file_directory} hasn't been configured")
:weave_no_handler -> Logger.warn("Tried to load configuration, but {:weave, :handler} hasn't been configured")
false -> Logger.warn("Tried to load configuration from '#{Application.get_env(:weave, :file_directory)}', but directory doesn't exist.")
end
end
defp load_configuration(file_directory, file_name, handler) do
configuration = "#{file_directory}/#{file_name}"
|> File.read!()
|> String.trim()
apply_configuration(file_name, configuration, handler)
end
end