我正在一个类似于 Vagrant 的虚拟机设置上进行 Rails 开发。我最喜欢它的地方在于它是可移植的,所以我在家里和工作中基本上都拥有相同的基于 Ubuntu 的虚拟机——我在给定的时刻复制了它。
我的问题是我在家中的 Mac 上设置了警卫来通知 Growl,但是由于我在 Windows 上工作,我想禁用 Windows 主机上运行的 VM 上的通知功能。
这是我的Guardfile
.
notification :gntp, :host => '192.168.1.139'
关于如何在其中一个虚拟机上禁用此功能的任何想法?
在我看来,两个虚拟机的不同之处在于 IP 地址,但我想我也可以修改主机名。
更新
我通过将上面的行修改为:
notification :gntp, :host => '192.168.1.139' if Socket.gethostname == 'railsbox'
# 'railsbox' is the VM on my Mac, I renamed the VM on Windows to 'railsbox-win'
至少这样它不会尝试通知该 IP 地址,而是尝试 localhost(这是默认行为)。在每次规范运行结束时我仍然会收到一个错误,但至少它不会在宝贵的几秒钟内挂起。错误是:
ERROR - Error sending notification with gntp: Connection refused - connect(2)
问题变成了如何在 Windows 上运行的 VM 上完全禁用 gntp?