Current section

Files

Jump to
umwelt lib mix tasks dump.ex
Raw

lib/mix/tasks/dump.ex

defmodule Mix.Tasks.Dump do
@moduledoc "This task for self-parse umwelt"
@shortdoc "The lib parser"
use Mix.Task
@impl Mix.Task
def run([]), do: parse_into("umwelt.bin")
def run([filename]), do: parse_into(filename)
defp parse_into(filename) do
Mix.Project.config()[:app]
|> to_string()
|> Umwelt.Parser.parse_source()
|> :erlang.term_to_binary()
|> dump(filename)
Mix.shell().info("Parsing result saved into #{filename}")
end
defp dump(result, filename), do: File.write(filename, result)
end