Choć nigdy Próbowałem uruchomione zadanie mix poprzez Mix.shell.cmd
od wewnątrz innego zadania mix i nie jestem pewien, czy jest to najlepsza praktyka, wydaje się, że coś takiego, czego dąży do będzie działać:
def run(args) do
Mix.Shell.cmd("mix test", fn(output) -> IO.write(output) end)
# (...)
end
Powyższy kod wykonuje testy przez mix test
i wypisuje ich wyniki. Uwaga: powyższy kod jest oparty na Mix 1.3.4, interfejs jest nieco inny w wersji 1.4.0.
Co może być bardziej eleganckie podejście chociaż byłoby tworząc mix alias do „kompozytowych” zadania, które składają się z zadań, które zależą i swoją niestandardową:
# inside mix.exs
def project do
[
# (...)
aliases: [
"composite.task": [
"test",
"edeliver build release",
"my.custom.task",
]
]
]
end
Teraz działa mix composite.task
należy uruchomić dwa inne zadania przed my.custom.task
.