Sha256: 687e3d463b917d65f806bfd9141788cf2de8dbdadc3c8a7617aba3cb63c3e3c9
Contents?: true
Size: 1.69 KB
Versions: 1
Compression:
Stored size: 1.69 KB
Contents
require "vagrant/action/builtin/mixin_synced_folders" module VagrantPlugins module DockerProvider module Action class CompareSyncedFolders include Vagrant::Action::Builtin::MixinSyncedFolders def initialize(app, env) @app = app end def call(env) machine = env[:machine] # Get the synced folders that are cached, and those that aren't cached = synced_folders(machine, cached: true) fresh = synced_folders(machine) # Build up a mapping of existing setup synced folders existing = {} cached.each do |_, fs| fs.each do |_, data| existing[data[:guestpath]] = data[:hostpath] end end # Remove the matching folders, and build up non-matching or # new syncedf olders. invalids = {} fresh.each do |_, fs| fs.each do |_, data| invalid = false old = existing.delete(data[:guestpath]) invalid = true if !old if !invalid && old invalid = true if old != data[:hostpath] end if invalid invalids[data[:guestpath]] = data[:hostpath] end end end # If we have invalid entries, these are changed or new entries. # If we have existing entries, then we removed some entries. if !invalids.empty? || !existing.empty? machine.ui.warn(I18n.t("docker_provider.synced_folders_changed")) end @app.call(env) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
vagrant-cloudstack-1.2.0 | vendor/bundle/bundler/gems/vagrant-c84e05fd063f/plugins/providers/docker/action/compare_synced_folders.rb |