获取先前 运行 rake 任务的输出

Get output of previously run rake task

我有一个 rake 任务,它依赖于另一个任务,因为它解析其输出以确定失败或成功。

目前我是这样做的:

task :foo do
  puts "OK"
end

task :bar do
  if `bundle exec rake foo`.split(/\n/)[-1] == "OK" then
    puts "Everything went fine"
  else
    puts "Something went wrong"
    exit 1
  end
end

但我不希望 运行 子 shell 中的依赖项,而是像 task bar: :foo do 中那样正确指定它,然后检查它的输出,这样的事情可能吗?

按照这个,它从另一个任务中调用一个任务。有帮助。

namespace :abc do
  task :aa do
    "ok"
  end

  task :bb do
    op = Rake::Task["abc:aa"].enhance(["abc:aa"])
    p "op=> #{op}"
  end
end