Eu tenho uma máquina virtual Ubuntu que estou acessando através do Vagrant.
No meu host (Mac OSX), há uma pasta com alguns arquivos que compartilho na máquina virtual. Nessa máquina virtual, quero usar o guard para observar as alterações nos arquivos e realizar alguma ação se algum desses arquivos for alterado.
Eu configurei a proteção corretamente e, ao alterar o arquivo compartilhado na máquina virtual, ele funciona corretamente e executa os scripts apropriados. Mas, se eu tentar alterar o arquivo compartilhado da minha máquina host, esse evento de alteração de arquivo não se propaga e a proteção não reage.
Esta é a aparência da minha pasta compartilhada vagante (coisas muito comuns)
local_config.vm.share_folder "app", "/var/www/app/current", "../app"
Eu até tentei usar o compartilhamento NFS ( :nfs => true
), mas isso não ajudou.
Existe alguma maneira de fazer com que os eventos de alterações de arquivos sejam propagados do host para a máquina virtual? Ou isso é algo da natureza do Vagrant / VirtualBox?
ATUALIZAÇÃO:
Depois de mais alguns testes, instalei o ZenTest gem, que contém uma ferramenta de autoteste que permite uma funcionalidade semelhante em relação a eventos de alteração de arquivo.
Ao executar o autoteste na máquina virtual e alterar os arquivos da minha máquina host, essas alterações são propagadas e o autotest reage .
Com base nisso, parece que a propagação do evento de mudança de arquivo é um problema de guarda, não de caixa virtual ou vagrant.
No entanto, não investiguei as diferenças de implementação entre guarda e autoteste.
Agora sei que é possível capturar eventos de alteração de arquivo do host na máquina virtual. Alguém tem alguma idéia sobre como conseguir isso usando guarda? Eu gosto de guarda mais por causa de sua usabilidade DSL e genérica.