使用守卫 运行 单个任务并退出/非交互式守卫

Use guard to run a single task and exit / non-interactive guard

我使用 Guardfiles 有一段时间了,主要是作为资产管道。例如,我将有一个带有组 assets 的 Guardfile。 在我的过程中,我会运行这样做:

$> guard
guard> assets
# Guard does stuff here
guard> exit

我经常这样做。我想要的是一种在非交互模式下执行此操作的方法。 例如,像这样:

$> guard --run_all assets
# Guard does stuff here
$> # Guard exited once the task was finished

考虑到我对此所做的大量研究,我认为这是不可能的。但也许有人有解决方案?

否则我将只编写自己的 gem 来读取 Guardfile 和 运行 Guard 插件上的 run_all 方法,而不使用 Guard 本身。恐怕这可能不适用于所有 Guard 插件。

编辑: 多亏了丹妮 link 到 Guard's wiki,这个问题才得以解决。不幸的是,文档似乎不是最新的,但仍然可以 运行 警卫使用类似这样的东西:

require 'guard'
Guard.setup
Guard.guards.each {|guard| guard.run_all}

您也可以通过管道将您的群组名称传递给 guard。因此,如果您想 运行 组 assets,您可以这样做:

$ echo assets | guard
[1] guard(main)> assets
[2] guard(main)>

16:13:36 - INFO - Bye bye...
$

$ guard <<< assets