Current section

Files

Jump to
elixir_structure_manager lib config generate_config.ex
Raw

lib/config/generate_config.ex

defmodule GenerateConfig do
require Logger
def create_config_files do
with {:ok, content} <- File.read("./deps/elixir_structure_manager/lib/parameters/create_structure.json"),
{:ok, parsed} <- Poison.decode(content),
normalized <- normalize(parsed) do
create_content("new_folder")
IO.inspect(normalized)
else
err ->
Logger.error("Error loading consumers #{inspect(err)}")
err
end
end
def create_content(name) do
Logger.info("creating directory")
File.mkdir_p(Path.dirname("./lib/folder/#{name}.exs")) |> IO.inspect()
end
def normalize(%{__struct__: _} = value), do: value
def normalize(%{} = map) do
Logger.info("Normalized")
Map.to_list(map)
|> Enum.map(fn {key, value} -> {String.to_atom(key), normalize(value)} end)
|> Enum.into(%{})
end
def normalize(value) when is_list(value), do: Enum.map(value, &normalize/1)
def normalize(value), do: value
end