Skip to content
This repository has been archived by the owner on Dec 5, 2022. It is now read-only.

Commit

Permalink
Add support for caching pip packages
Browse files Browse the repository at this point in the history
These directories are chached for pip packages:
$HOME/.cache/pip/http
$HOME/.cache/pip/wheels
  • Loading branch information
moinfar authored and semekh committed Jul 5, 2015
1 parent 40dddfb commit 1c3fcd2
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 0 deletions.
1 change: 1 addition & 0 deletions lib/vagrant-cachier/bucket.rb
Original file line number Diff line number Diff line change
Expand Up @@ -101,3 +101,4 @@ def symlink?(path)
require_relative "bucket/npm"
require_relative "bucket/zypper"
require_relative "bucket/generic"
require_relative "bucket/pip"
22 changes: 22 additions & 0 deletions lib/vagrant-cachier/bucket/pip.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
module VagrantPlugins
module Cachier
class Bucket
class Pip < Bucket
def self.capability
:pip_cache_dir
end

def install
if guest.capability?(:pip_cache_dir)
if guest_path = guest.capability(:pip_cache_dir)
symlink("#{guest_path}/http", "/tmp/vagrant-cache/#{@name}/http")
symlink("#{guest_path}/wheels", "/tmp/vagrant-cache/#{@name}/wheels")
end
else
@env[:ui].info I18n.t('vagrant_cachier.skipping_bucket', bucket: 'pip')
end
end
end
end
end
end
20 changes: 20 additions & 0 deletions lib/vagrant-cachier/cap/linux/pip_cache_dir.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
module VagrantPlugins
module Cachier
module Cap
module Linux
module PipCacheDir
def self.pip_cache_dir(machine)
pip_cache_dir = nil
machine.communicate.tap do |comm|
return unless comm.test('which pip')
comm.execute 'echo $HOME' do |buffer, output|
pip_cache_dir = output.chomp if buffer == :stdout
end
end
return "#{pip_cache_dir}/.cache/pip"
end
end
end
end
end
end
5 changes: 5 additions & 0 deletions lib/vagrant-cachier/capabilities.rb
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,11 @@ class Plugin < Vagrant.plugin('2')
Cap::Linux::NpmCacheDir
end

guest_capability 'linux', 'pip_cache_dir' do
require_relative 'cap/linux/pip_cache_dir'
Cap::Linux::PipCacheDir
end

guest_capability 'debian', 'apt_cache_dir' do
require_relative 'cap/debian/apt_cache_dir'
Cap::Debian::AptCacheDir
Expand Down

0 comments on commit 1c3fcd2

Please sign in to comment.