【问题标题】:Elixir: run two scripts in mix aliasesElixir:以混合别名运行两个脚本
【发布时间】:2018-08-18 14:07:08
【问题描述】:

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

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

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

【问题讨论】:

  • 有什么原因你不能从 shell 脚本中调用 script1.exs 然后 script2.exs 吗?
  • @OnorioCatenacci 没有理由。我确实也能做到。

标签: elixir elixir-mix


【解决方案1】:

正如我之前所说,你可以使用 rerun

 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

【讨论】:

  • 对不起,我稍微修改了问题。我之前没有正确描述我的问题。
猜你喜欢
  • 2016-08-19
  • 2020-01-05
  • 1970-01-01
  • 2019-11-13
  • 2012-09-15
  • 2010-12-12
  • 1970-01-01
  • 2021-02-18
  • 1970-01-01
相关资源
最近更新 更多