Current section
Files
Jump to
Current section
Files
lib/iris.ex
defmodule Iris do
alias Iris.Core
@iris_dir Application.compile_env(:iris, :target_dir, "iris")
defmacrop list_static() do
"iris/*"
|> Path.wildcard()
|> Enum.map(fn path ->
Module.put_attribute(__CALLER__.module, :external_resource, path)
{path, File.read!(path)}
end)
end
def build(config) do
core_entity = Core.build(config)
{:ok, json} = Jason.encode(core_entity, [{:escape, :unicode_safe}, {:pretty, true}])
entity_content = "const getGlobalEntity = () => { return #{json}; }"
entity_path = Path.join([@iris_dir, "entity.js"])
entity_asset = {entity_path, entity_content}
if not File.exists?(@iris_dir) do
Mix.shell().info("Creating directory #{@iris_dir}")
File.mkdir_p!(@iris_dir)
end
Mix.shell().info("Writing to #{@iris_dir}")
[entity_asset | list_static()]
|> Enum.each(fn {path, content} ->
Mix.shell().info("Writing #{path}")
File.write!(path, content)
end)
Mix.shell().info("Iris view available at iris/index.html")
end
end