This commit is contained in:
Fabio Rehm 2014-04-06 21:02:56 -03:00
commit ffd6c514dd
3 changed files with 61 additions and 0 deletions

41
docs/buckets/generic.md Normal file
View file

@ -0,0 +1,41 @@
# Generic
This bucket is never enabled by default. You have to enable it explicitly like
this:
```ruby
Vagrant.configure("2") do |config|
config.cache.enable :generic, { :cache_dir => "/var/cache/some" }
end
```
The :cache_dir parameter is required. It specifies the directory on the guest
that will be cached under the "generic" bucket.
You may enable more than one generic bucket by giving them different names via
the :name parameter, like this:
```ruby
Vagrant.configure("2") do |config|
config.cache.enable :generic, { :name => "one", :cache_dir => "/var/cache/one" }
config.cache.enable :generic, { :name => "two", :cache_dir => "/var/cache/two" }
end
```
In this case you get two buckets called "generic-one" and "generic-two".
The Generic bucket is useful if you want to implement a caching mechanism by
hand. For instance, if you want to cache your wget downloads under
/var/cache/wget you can do this:
```ruby
Vagrant.configure("2") do |config|
config.cache.enable :generic, { :name => wget, :cache_dir => "/var/cache/wget" }
end
```
Then, you invoke wget like this:
```sh
wget -N -P /var/cache/wget URL
```

View file

@ -98,3 +98,4 @@ require_relative "bucket/apt_lists"
require_relative "bucket/composer" require_relative "bucket/composer"
require_relative "bucket/npm" require_relative "bucket/npm"
require_relative "bucket/zypper" require_relative "bucket/zypper"
require_relative "bucket/generic"

View file

@ -0,0 +1,19 @@
module VagrantPlugins
module Cachier
class Bucket
class Generic < Bucket
def self.capability
:generic_cache_dir
end
def install
if @configs.has_key?(:cache_dir)
@name = @configs.has_key?(:name) ? "generic-#{@configs[:name]}" : "generic"
symlink(@configs[:cache_dir])
else
@env[:ui].info I18n.t('vagrant_cachier.skipping_bucket', bucket: 'Generic')
end
end
end
end
end