我的问题就像Programmatically check if gem in bundle?,除了我想要从命令行检查,而不是从程序中检查。
我已经为Rails项目设置了代码的CI,我的一个测试涉及运行haml-lint。今天,我遇到了一个失败,因为没有安装haml-lint的项目的旧分支被推送到存储库。我希望能够测试是否安装了haml-lint,因此如果没有安装haml-lint,我将不会尝试运行它。
我能做到
bundle exec haml-lint --version
或可能bundle list
加上一些文字处理,但我想知道是否有更简洁和意图揭示的内容。
答案 0 :(得分:1)
正在运行
bundle list | grep haml-lint
会为你效劳。但是为此实现程序代码显然是滥用Rails方式。为了避免这样的事情,你最好将Gemfile.lock保存在你的存储库中,如果你出于某种未知原因删除了所需的gems,它就会失败。因为在Rails中如何处理事情,以及我们为什么需要CI,在生产之前避免这样的事情。建立额外的代码,以避免杀死所有奖金。
答案 1 :(得分:0)
您可以从控制台执行gem('haml-lint')
,或者可以使用grep 'haml-lint' Gemfile
在命令行中查找字符串。