Elixir:在混合别名中运行两个脚本

时间:2018-03-09 22:45:01

标签: elixir mix

所以我试图一个接一个地运行脚本。但在两者之间必须有像ecto.create这样的东西。但是,当我mix work时,它并没有真正发挥作用。只运行第一个脚本。

def aliases do
[
    work: [
        "run script1.exs",
        "ecto.create",
        "run script2.exs"
    ]
]
end

有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

正如我之前所说,你可以使用重新运行

 defp aliases do
    [
      other_task: &hello/1,
      work: &work/1
    ] 
 end

 defp work(_) do
   Mix.Task.run("run", ["script1.exs"])
   Mix.Task.run("ecto.create")
   Mix.Task.run("other_task")
   Mix.Task.rerun("run", ["script2.exs"])
 end

 defp hello(_) do
   Mix.shell.info "Hello world"
 end
 def aliases do
    [
        work: "run -r script1.exs -r script2.exs"
    ]
 end

注意 - 如果您坚持要重新运行“运行”,请使用Mix.Task.rerun/2