defmodule Chaps.SubApps do
@moduledoc """
Handles information of sub apps of umbrella projects.
"""
def find(sub_apps, compile_path) do
Enum.find(sub_apps, {nil, nil}, fn {_sub_app, path} ->
String.starts_with?(compile_path, path)
end)
end
def parse(deps) do
deps
|> Enum.map(&{&1.app, &1.opts[:build]})
|> Enum.sort(fn {_app1, build_path1}, {_app2, build_path2} ->
# sort the longest paths first to avoid matching a path that contains another
# example "./apps/myapp_server" would contain path "./apps/myapp"
String.length(build_path1) > String.length(build_path2)
end)
end
end