File: synced_folder.rb

package info (click to toggle)
vagrant 2.2.14%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 9,800 kB
  • sloc: ruby: 97,301; sh: 375; makefile: 16; lisp: 1
file content (32 lines) | stat: -rw-r--r-- 953 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
module VagrantPlugins
  module DockerProvider
    class SyncedFolder < Vagrant.plugin("2", :synced_folder)
      def usable?(machine, raise_error=false)
        # These synced folders only work if the provider is Docker
        if machine.provider_name != :docker
          if raise_error
            raise Errors::SyncedFolderNonDocker,
              provider: machine.provider_name.to_s
          end

          return false
        end

        true
      end

      def prepare(machine, folders, _opts)
        folders.each do |id, data|
          next if data[:ignore]

          host_path  = data[:hostpath]
          guest_path = data[:guestpath]
          # Append consistency option if it exists, otherwise let it nil out
          consistency = data[:docker_consistency]
          consistency &&= ":" + consistency
          machine.provider_config.volumes << "#{host_path}:#{guest_path}#{consistency}"
        end
      end
    end
  end
end