Sha256: 44f647e10240745f1e8bc8a335efaac353e337db9630b3b0eda74e25499e5ee5

Contents?: true

Size: 942 Bytes

Versions: 4

Compression:

Stored size: 942 Bytes

Contents

module VagrantPlugins
  module Cachier
    class Bucket
      class Npm < Bucket
        def self.capability
          :npm_cache_dir
        end

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

          if guest.capability?(:npm_cache_dir)
            guest_path = guest.capability(:npm_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.execute("rm -rf #{guest_path}")
                comm.execute("mkdir -p `dirname #{guest_path}`")
                comm.execute("ln -s /tmp/vagrant-cache/#{@name} #{guest_path}")
              end
            end
          else
            @env[:ui].info I18n.t('vagrant_cachier.skipping_bucket', bucket: 'npm')
          end
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
vagrant-cachier-0.5.1 lib/vagrant-cachier/bucket/npm.rb
vagrant-cachier-0.5.0 lib/vagrant-cachier/bucket/npm.rb
vagrant-cachier-0.4.1 lib/vagrant-cachier/bucket/npm.rb
vagrant-cachier-0.4.0 lib/vagrant-cachier/bucket/npm.rb