vagrant-cachier 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CHANGELOG.md +7 -2
- data/Gemfile.lock +1 -1
- data/README.md +17 -0
- data/development/Vagrantfile +11 -0
- data/lib/vagrant-cachier/action.rb +2 -1
- data/lib/vagrant-cachier/bucket.rb +1 -0
- data/lib/vagrant-cachier/bucket/rvm.rb +39 -0
- data/lib/vagrant-cachier/cap/linux/rvm_path.rb +21 -0
- data/lib/vagrant-cachier/config.rb +3 -1
- data/lib/vagrant-cachier/plugin.rb +5 -0
- data/lib/vagrant-cachier/version.rb +1 -1
- metadata +9 -10
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 358ed900ee09d49b65042a0bf76b3d6b888c60b8
|
|
4
|
+
data.tar.gz: c24d390fbd5c1fc4446a956c6c65bacb56dee603
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 2e64ed67cbd86f0fb5ab18583f4a637ba9114f33a3bb64032b20293b09fc41cb1d2677fb1fc8980139efcfad27523bb92c1d5f026b9fa6b38ce43a6efa94899d
|
|
7
|
+
data.tar.gz: 266406520e8f8cd08a9e6914399b526813b512fb9279ca21aef489f7c1cf00bda47a0e0db98de047501cd217c367507b4c62cb1698dea9ce2117be27482eac32
|
data/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
## 0.1.
|
|
1
|
+
## [0.2.0](https://github.com/fgrehm/vagrant-cachier/compare/v0.1.0...v0.2.0) (July 10, 2013)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
FEATURES:
|
|
4
|
+
|
|
5
|
+
- Support enabling NFS for root cache folder. [GH-7]
|
|
6
|
+
- Support RVM bucket
|
|
7
|
+
|
|
8
|
+
## [0.1.0](https://github.com/fgrehm/vagrant-cachier/compare/v0.0.6...v0.1.0) (June 9, 2013)
|
|
4
9
|
|
|
5
10
|
IMPROVEMENTS:
|
|
6
11
|
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
|
@@ -24,6 +24,8 @@ from within your `Vagrantfile`:
|
|
|
24
24
|
Vagrant.configure("2") do |config|
|
|
25
25
|
config.vm.box = 'your-box'
|
|
26
26
|
config.cache.auto_detect = true
|
|
27
|
+
# If you are using VirtualBox, you might want to enable NFS for shared folders
|
|
28
|
+
# config.cache.enable_nfs = true
|
|
27
29
|
end
|
|
28
30
|
```
|
|
29
31
|
|
|
@@ -182,6 +184,21 @@ it is already installed before enabling the bucket, otherwise you won't benefit
|
|
|
182
184
|
from this plugin.
|
|
183
185
|
|
|
184
186
|
|
|
187
|
+
#### RVM
|
|
188
|
+
|
|
189
|
+
```ruby
|
|
190
|
+
Vagrant.configure("2") do |config|
|
|
191
|
+
config.vm.box = 'some-box-with-rvm-installed'
|
|
192
|
+
config.cache.enable :rvm
|
|
193
|
+
end
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Compatible with probably with any type of linux guest distro, will hook into the `cache`
|
|
197
|
+
folder under the result of running `rvm info` as the default SSH user (usualy
|
|
198
|
+
`vagrant`) on your guest. If you use rvm on the guest machine, make sure
|
|
199
|
+
it is already installed before enabling the bucket, otherwise you won't benefit
|
|
200
|
+
from this plugin.
|
|
201
|
+
|
|
185
202
|
## Finding out disk space used by buckets
|
|
186
203
|
|
|
187
204
|
_TODO_
|
data/development/Vagrantfile
CHANGED
|
@@ -9,6 +9,11 @@ Vagrant.configure("2") do |config|
|
|
|
9
9
|
|
|
10
10
|
config.cache.scope = :machine
|
|
11
11
|
config.cache.auto_detect = true
|
|
12
|
+
config.cache.enable_nfs = true
|
|
13
|
+
|
|
14
|
+
config.vm.provider :virtualbox do |_, vb|
|
|
15
|
+
vb.vm.network :private_network, ip: "192.168.50.123"
|
|
16
|
+
end
|
|
12
17
|
|
|
13
18
|
debian_like_configs = lambda do |debian|
|
|
14
19
|
debian.vm.provision :shell, inline: '
|
|
@@ -49,4 +54,10 @@ Vagrant.configure("2") do |config|
|
|
|
49
54
|
time sudo pacman -Syu --noconfirm libffi git
|
|
50
55
|
fi'
|
|
51
56
|
end
|
|
57
|
+
|
|
58
|
+
config.vm.provision :shell, inline: '
|
|
59
|
+
if ! [ -d /home/vagrant/.rvm ]; then
|
|
60
|
+
HOME=/home/vagrant su -p vagrant -c "curl -L https://get.rvm.io | bash -s stable"
|
|
61
|
+
fi
|
|
62
|
+
'
|
|
52
63
|
end
|
|
@@ -16,7 +16,8 @@ module VagrantPlugins
|
|
|
16
16
|
|
|
17
17
|
FileUtils.mkdir_p(cache_root.to_s) unless cache_root.exist?
|
|
18
18
|
|
|
19
|
-
env[:machine].config.
|
|
19
|
+
nfs_flag = env[:machine].config.cache.enable_nfs
|
|
20
|
+
env[:machine].config.vm.synced_folder cache_root, '/tmp/vagrant-cache', id: "vagrant-cache", nfs: nfs_flag
|
|
20
21
|
|
|
21
22
|
@app.call env
|
|
22
23
|
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
module VagrantPlugins
|
|
2
|
+
module Cachier
|
|
3
|
+
class Bucket
|
|
4
|
+
class Rvm < Bucket
|
|
5
|
+
def self.capability
|
|
6
|
+
:rvm_path
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def install
|
|
10
|
+
machine = @env[:machine]
|
|
11
|
+
guest = machine.guest
|
|
12
|
+
|
|
13
|
+
if guest.capability?(:rvm_path)
|
|
14
|
+
if rvm_path = guest.capability(:rvm_path)
|
|
15
|
+
prefix = rvm_path.split('/').last
|
|
16
|
+
bucket_path = "/tmp/vagrant-cache/#{@name}/#{prefix}"
|
|
17
|
+
machine.communicate.tap do |comm|
|
|
18
|
+
comm.execute("mkdir -p #{bucket_path}")
|
|
19
|
+
|
|
20
|
+
rvm_cache_path = "#{rvm_path}/archives"
|
|
21
|
+
|
|
22
|
+
@env[:cache_dirs] << rvm_cache_path
|
|
23
|
+
|
|
24
|
+
unless comm.test("test -L #{rvm_cache_path}")
|
|
25
|
+
comm.sudo("rm -rf #{rvm_cache_path}")
|
|
26
|
+
comm.sudo("mkdir -p `dirname #{rvm_cache_path}`")
|
|
27
|
+
comm.sudo("ln -s #{bucket_path} #{rvm_cache_path}")
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
else
|
|
32
|
+
# TODO: Raise a better error
|
|
33
|
+
raise "You've configured a RVM cache for a guest machine that does not support it!"
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module VagrantPlugins
|
|
2
|
+
module Cachier
|
|
3
|
+
module Cap
|
|
4
|
+
module Linux
|
|
5
|
+
module RvmPath
|
|
6
|
+
def self.rvm_path(machine)
|
|
7
|
+
rvm_path = nil
|
|
8
|
+
machine.communicate.tap do |comm|
|
|
9
|
+
return unless comm.test('rvm info')
|
|
10
|
+
comm.execute 'echo $rvm_path' do |buffer, output|
|
|
11
|
+
rvm_path = output.chomp if buffer == :stdout
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
return rvm_path
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
module VagrantPlugins
|
|
2
2
|
module Cachier
|
|
3
3
|
class Config < Vagrant.plugin(2, :config)
|
|
4
|
-
attr_accessor :scope, :auto_detect
|
|
4
|
+
attr_accessor :scope, :auto_detect, :enable_nfs
|
|
5
5
|
attr_reader :buckets
|
|
6
6
|
|
|
7
7
|
def initialize
|
|
8
8
|
@scope = UNSET_VALUE
|
|
9
9
|
@auto_detect = UNSET_VALUE
|
|
10
|
+
@enable_nfs = UNSET_VALUE
|
|
10
11
|
end
|
|
11
12
|
|
|
12
13
|
def enable(bucket, opts = {})
|
|
@@ -18,6 +19,7 @@ module VagrantPlugins
|
|
|
18
19
|
|
|
19
20
|
@scope = :box if @scope == UNSET_VALUE
|
|
20
21
|
@auto_detect = false if @auto_detect == UNSET_VALUE
|
|
22
|
+
@enable_nfs = false if @enable_nfs == UNSET_VALUE
|
|
21
23
|
@buckets = @buckets ? @buckets.dup : {}
|
|
22
24
|
end
|
|
23
25
|
|
|
@@ -13,6 +13,11 @@ module VagrantPlugins
|
|
|
13
13
|
Cap::Linux::Gemdir
|
|
14
14
|
end
|
|
15
15
|
|
|
16
|
+
guest_capability 'linux', 'rvm_path' do
|
|
17
|
+
require_relative 'cap/linux/rvm_path'
|
|
18
|
+
Cap::Linux::RvmPath
|
|
19
|
+
end
|
|
20
|
+
|
|
16
21
|
guest_capability 'debian', 'apt_cache_dir' do
|
|
17
22
|
require_relative 'cap/debian/apt_cache_dir'
|
|
18
23
|
Cap::Debian::AptCacheDir
|
metadata
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: vagrant-cachier
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
5
|
-
prerelease:
|
|
4
|
+
version: 0.2.0
|
|
6
5
|
platform: ruby
|
|
7
6
|
authors:
|
|
8
7
|
- Fabio Rehm
|
|
9
8
|
autorequire:
|
|
10
9
|
bindir: bin
|
|
11
10
|
cert_chain: []
|
|
12
|
-
date: 2013-
|
|
11
|
+
date: 2013-07-11 00:00:00.000000000 Z
|
|
13
12
|
dependencies: []
|
|
14
13
|
description: Speed up vagrant boxes provisioning
|
|
15
14
|
email:
|
|
@@ -32,10 +31,12 @@ files:
|
|
|
32
31
|
- lib/vagrant-cachier/bucket/apt.rb
|
|
33
32
|
- lib/vagrant-cachier/bucket/gem.rb
|
|
34
33
|
- lib/vagrant-cachier/bucket/pacman.rb
|
|
34
|
+
- lib/vagrant-cachier/bucket/rvm.rb
|
|
35
35
|
- lib/vagrant-cachier/bucket/yum.rb
|
|
36
36
|
- lib/vagrant-cachier/cap/arch/pacman_cache_dir.rb
|
|
37
37
|
- lib/vagrant-cachier/cap/debian/apt_cache_dir.rb
|
|
38
38
|
- lib/vagrant-cachier/cap/linux/gemdir.rb
|
|
39
|
+
- lib/vagrant-cachier/cap/linux/rvm_path.rb
|
|
39
40
|
- lib/vagrant-cachier/cap/redhat/yum_cache_dir.rb
|
|
40
41
|
- lib/vagrant-cachier/config.rb
|
|
41
42
|
- lib/vagrant-cachier/plugin.rb
|
|
@@ -44,27 +45,25 @@ files:
|
|
|
44
45
|
homepage: https://github.com/fgrehm/vagrant-cachier
|
|
45
46
|
licenses:
|
|
46
47
|
- MIT
|
|
48
|
+
metadata: {}
|
|
47
49
|
post_install_message:
|
|
48
50
|
rdoc_options: []
|
|
49
51
|
require_paths:
|
|
50
52
|
- lib
|
|
51
53
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
52
|
-
none: false
|
|
53
54
|
requirements:
|
|
54
|
-
- -
|
|
55
|
+
- - '>='
|
|
55
56
|
- !ruby/object:Gem::Version
|
|
56
57
|
version: '0'
|
|
57
58
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
58
|
-
none: false
|
|
59
59
|
requirements:
|
|
60
|
-
- -
|
|
60
|
+
- - '>='
|
|
61
61
|
- !ruby/object:Gem::Version
|
|
62
62
|
version: '0'
|
|
63
63
|
requirements: []
|
|
64
64
|
rubyforge_project:
|
|
65
|
-
rubygems_version:
|
|
65
|
+
rubygems_version: 2.0.0
|
|
66
66
|
signing_key:
|
|
67
|
-
specification_version:
|
|
67
|
+
specification_version: 4
|
|
68
68
|
summary: Speed up vagrant boxes provisioning
|
|
69
69
|
test_files: []
|
|
70
|
-
has_rdoc:
|