我想用震动下载一堆网页,然后对它们进行一些处理。但是,我还想选择在震动之外下载页面,告诉我已经这样做了,然后继续摇动其余的处理步骤。现在我正在做第二步,“告诉我,我已经完成了一些工作”。
举一个最小的例子,这是一个非常简短的摇动脚本:
$.ajax({
url: {% url 'create' %},
dataType: "html",
method: "GET",
success: function(data){
$("#createModal").html(data);
}
});
我想找到一种方法来阻止此脚本打印import Development.Shake
main = shakeArgs shakeOptions $ do
want ["test.txt"]
"test.txt" %> \_ -> liftIO (putStrLn "yikes!")
(但仍然更新yikes!
的数据库条目)。使用test.txt
运行此功能,部分看到了:
--help
这听起来很有希望。但是:
--touch Assume targets are clean.
也许它需要一个明确的文件列表来标记为新的?
% rm -r .shake && ./test --touch
yikes!
Build completed in 0:01m
好。好吧,% rm -r .shake && ./test --touch test.txt
yikes!
Build completed in 0:01m
也列出了这个:
--help
我觉得有点令人费解:我们现在有一个“干净/肮脏”的比喻和一个“旧的/新的”比喻,并不清楚它们是如何相关的。而且,当然,如果文件过时,那意味着 想重拍它,对吗?无论如何,它似乎没有做我想要的:
-o FILE, --old-file=FILE, --assume-old=FILE
Consider FILE to be very old and don't remake it.
好吧......好吧,也许这个选项与那个选项完全相反,可以做我想做的事情:
% rm -r .shake && ./test -o test.txt
yikes!
Build completed in 0:01m
没有骰子:
-W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE
Consider FILE to be infinitely new.
这给我留下了几个问题:
% r .shake && ./test -W test.txt
yikes!
Build completed in 0:01m
相关联的test.txt
的情况下,让 更新Action
的数据库条目?test.txt
做了什么,为什么没有帮助?--touch
/ -o
做了什么,为什么他们没有帮助?答案 0 :(得分:2)
观察到混合隐喻是正确的,也是问题的一部分。在当前发布的Shake版本中,标志取自Make,它与Shake具有不同的语义,因此映射得很差。在当前的HEAD版本的Shake中,它已被重写并且更加简单 - 但是现在让我们关注已发布的版本。
在Shake 0.15(当前发布的版本)中,只有在Shake之前成功运行它时,才能跳过规则。因此,当您{Shake数据库rm
时,Shake无法跳过测试执行的规则,因为它以前从未运行过。
在Shake 0.16出来之前,一个可靠而简单的选择是为你的构建系统添加一个标志,其存在会跳过所有下载 - 所以Shake仍然运行规则,但规则的效果是无操作。