救援耙任务

发布于 2024-08-16 20:54:04 字数 488 浏览 2 评论 0原文

我的 Rakefile 中有许多文件任务,看起来像

file 'task1' => 'dep' do
  sh "some command"
end

还有

task :start => :next
task :last => :dep2

我想知道是否有一种方法可以在顶层拯救它,即说

begin
  task :last => :dep2
rescue
  # do something
end

而不是在每个 file 任务中这样做

file 'task1' => 'dep' do
  begin
    sh "some command"
  rescue
    # do something
  end
end

是吗?可能的?

I have a number of file tasks in my Rakefile which look like

file 'task1' => 'dep' do
  sh "some command"
end

There's also

task :start => :next
task :last => :dep2

I was wondering if there was a way of rescuing it on the top level, i.e. to say

begin
  task :last => :dep2
rescue
  # do something
end

rather than in every file task do

file 'task1' => 'dep' do
  begin
    sh "some command"
  rescue
    # do something
  end
end

Is it possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

听风吹 2024-08-23 20:54:04

不,但您可以定义自定义方法来简化您的任务。

def safe_task(&block)
  yield
rescue
  # do something
end

file 'task1' => 'dep' do
  safe_task do
    sh "some command"
  end
end

另外,请记住 :task2 依赖于 :task1 并且 :task1 可能引发异常,您应该在 中处理错误:任务1,不在:task2中。

No, but you can define a custom method to simplify your tasks.

def safe_task(&block)
  yield
rescue
  # do something
end

file 'task1' => 'dep' do
  safe_task do
    sh "some command"
  end
end

Also, remember that is :task2 depends on :task1 and :task1 can raise an exception, you should handle the error in :task1, not in :task2.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文