J'ai une machine virtuelle ubuntu à laquelle j'accède via Vagrant. Sur mon hôte (Mac OSX), il y a un dossier avec quelques fichiers, que je partage sur une machine virtuelle. Dans cette machine virtuelle, je veux utiliser Guard pour surveiller les modifications de fichiers et effectuer une action si l'un de ces fichiers change.
J'ai installé la garde correctement et lors du changement de fichier partagé à partir de la machine virtuelle, cela fonctionne bien et exécute les scripts appropriés. Mais, si j'essaye de changer le fichier partagé de ma machine hôte, cet événement de changement de fichier ne se propage pas et guard ne réagit pas.
Voici à quoi ressemble mon dossier partagé vagabond (trucs assez habituels)
local_config.vm.share_folder "app", "/var/www/app/current", "../app"
J'ai même essayé d'utiliser le partage NFS ( :nfs => true
) mais cela n'a pas aidé.
Existe-t-il un moyen de faire en sorte que les événements de modification de fichier se propagent de l'hôte à la machine virtuelle? Ou est-ce quelque chose de la nature de Vagrant / VirtualBox?
MISE À JOUR:
Après quelques essais supplémentaires, j'ai installé ZenTest gem, qui contient un outil d'autotest permettant des fonctionnalités similaires concernant les événements de changement de fichier.
Lors de l'exécution de l'autotest sur une machine virtuelle et de la modification de fichiers depuis ma machine hôte, ces modifications sont propagées et l' autotest réagit .
Sur cette base, il semble que la propagation des événements de changement de fichier soit un problème de garde, pas de boîte vagabonde ou virtuelle.
Je n'ai cependant pas examiné les différences d'implémentation entre guard et autotest.
Maintenant, je sais qu'il est possible d'attraper les événements de changement de fichier depuis l'hôte dans la machine virtuelle. Quelqu'un a-t-il une idée sur la façon d'y parvenir en utilisant la garde? J'aime plus la garde en raison de son utilisation DSL et générique.
Je sais que c'est une question plus ancienne, mais voici une réponse plus à jour:
-o/--listen-on
Documentation des options de gardeCollé ici pour référence rapide:
la source
Si quelqu'un rencontre ce problème et que la garde ne fonctionne toujours pas ...
J'ai fini par utiliser watchr . C'est une alternative à garder. La propagation des événements de l'hôte à la machine invitée fonctionne correctement dans watchr. Il est également plus flexible que l'autotest.
la source
Events propagation from host to guest machine works ok in watchr.
Comment? Utilise-t-il le sondage? Si VirtualBox ne propage pas les événements, comment peut-il savoir quand un fichier a changé?