我如何知道 rake 任务是否已从另一个任务或 shell 调用?

发布于 2024-12-01 10:06:43 字数 313 浏览 0 评论 0原文

假设我们有:

task :something => [:something_else] do
  # some of stuff
end

task :something_else do
  # some verbose stuff
  # some quiet stuff
end

现在我希望 something_else 在从 shell 调用时执行详细的操作 (rake Something_else),并在作为 的依赖项调用时执行静默操作耙一些东西

Let's say we have:

task :something => [:something_else] do
  # some of stuff
end

task :something_else do
  # some verbose stuff
  # some quiet stuff
end

Now I want something_else to do the verbose stuff when called from the shell (rake something_else) and the silent ones when called as a dependency to rake something.

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

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

发布评论

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

评论(2

嘿咻 2024-12-08 10:06:43

我认为使用参数或不同的任务可能是一个更好的主意。

您可以做的一件事就是寻找这样的顶级任务:

task :something_else do |t|
  puts "some verbose stuff" if t.application.top_level_tasks.include? 'something_else'
  puts "some quiet stuff"
end

i think it might be a better idea to work with parameters or different tasks instead.

one thing that you could do is look for top-level task like that:

task :something_else do |t|
  puts "some verbose stuff" if t.application.top_level_tasks.include? 'something_else'
  puts "some quiet stuff"
end
栀子花开つ 2024-12-08 10:06:43

您可以查看传递给 ARGV 的内容。例如:

task :something_else do
    if ARGV[0] == 'something_else'
       puts "Verbose Stuff!"
    end
end

You could look what was passed to ARGV. For example:

task :something_else do
    if ARGV[0] == 'something_else'
       puts "Verbose Stuff!"
    end
end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文