Implement generic bucket
This bucket must be explicitly enabled and may be useful for users wanting a generic caching mechanism that they can use directly instead of via some predefined packaging system. For instance, this enables one to implement a cache for packages downloaded via wget or curl.
This commit is contained in:
parent
2df1e31940
commit
a63156e482
3 changed files with 61 additions and 0 deletions
41
docs/buckets/generic.md
Normal file
41
docs/buckets/generic.md
Normal 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
|
||||
```
|
|
@ -98,3 +98,4 @@ require_relative "bucket/apt_lists"
|
|||
require_relative "bucket/composer"
|
||||
require_relative "bucket/npm"
|
||||
require_relative "bucket/zypper"
|
||||
require_relative "bucket/generic"
|
||||
|
|
19
lib/vagrant-cachier/bucket/generic.rb
Normal file
19
lib/vagrant-cachier/bucket/generic.rb
Normal 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
|
Loading…
Reference in a new issue