Current section

Files

Jump to
kvasir_dev lib kvasir dev.ex
Raw

lib/kvasir/dev.ex

defmodule Kvasir.Dev do
@external_resource lock =
Enum.find(
[
Path.join(File.cwd!(), "../../.kvasir"),
Path.join(File.cwd!(), ".kvasir"),
Path.join(__DIR__, "../../../../.kvasir"),
Path.join(__DIR__, "../../.kvasir")
],
&File.exists?/1
)
data = File.read!(lock)
:application.ensure_all_started(:hackney)
if data
|> String.split("\n", trim: true)
|> Enum.map(&String.trim/1)
|> Enum.reject(&(&1 == ""))
|> Enum.map(fn line ->
case String.split(line, ":") do
[component] -> {component, "release/v1.0"}
[component, commit] -> {component, commit}
end
end)
|> Enum.sort_by(fn {k, _} -> Enum.find_index(~W(core agent), &(&1 == k)) || 9_999 end)
|> Enum.map(fn {component, commit} ->
Kvasir.Dev.Downloader.component(component, commit)
end)
|> Enum.any?(&(&1 != :noop)) do
# alias Mix.Tasks.Deps.{Compile, Get}
# Get.run([])
# Compile.run([])
:ok
end
def lock, do: unquote(lock)
end