Sha256: c217341fbf20a8193269887ab1a644b899a15912fced41c48046a3df3d4d873d

Contents?: true

Size: 933 Bytes

Versions: 3

Compression:

Stored size: 933 Bytes

Contents

module VagrantPlugins
  module Cachier
    class Bucket
      class Apt < Bucket
        def self.capability
          :apt_cache_dir
        end

        def install
          machine = @env[:machine]
          guest   = machine.guest

          if guest.capability?(:apt_cache_dir)
            guest_path = guest.capability(:apt_cache_dir)

            @env[:cache_dirs] << guest_path

            machine.communicate.tap do |comm|
              comm.execute("mkdir -p /tmp/vagrant-cache/#{@name}")
              unless comm.test("test -L #{guest_path}")
                comm.sudo("rm -rf #{guest_path}")
                comm.sudo("mkdir -p `dirname #{guest_path}`")
                comm.sudo("ln -s /tmp/vagrant-cache/#{@name} #{guest_path}")
              end
            end
          else
            @env[:ui].info I18n.t('vagrant_cachier.skipping_bucket', bucket: 'APT')
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
vagrant-cachier-0.3.2 lib/vagrant-cachier/bucket/apt.rb
vagrant-cachier-0.3.1 lib/vagrant-cachier/bucket/apt.rb
vagrant-cachier-0.3.0 lib/vagrant-cachier/bucket/apt.rb