vagrant-librarian-chef 0.1.5 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +4 -1
- data/README.md +11 -1
- data/Vagrantfile +3 -11
- data/lib/vagrant-librarian-chef/action/librarian_chef.rb +29 -11
- data/lib/vagrant-librarian-chef/config.rb +7 -0
- data/lib/vagrant-librarian-chef/plugin.rb +3 -3
- data/lib/vagrant-librarian-chef/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d85e969ea6c572d3998707160e2451d9bb25f89a
|
4
|
+
data.tar.gz: dee9cf6039ca1c83c82a4326269ce233f9f85098
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 336c317116a84b93ecacc9fc674e900fb17ad35b05891d194f5f12384e2a6ecd05822763c02fd0099c0793fafb18cb238dd53ec07202fa2045e47ff3ccd5c130
|
7
|
+
data.tar.gz: 8c76081a01c978ada29680fe8f60e0b5199c185cb48f40bd344dd458089a7c289ee5b12dd027514ee59c6f83e5319a88767116ad6756e30d7eb8bd6f86507b62
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -38,8 +38,18 @@ Vagrant.configure("2") do |config|
|
|
38
38
|
end
|
39
39
|
```
|
40
40
|
|
41
|
+
Librarian-Chef can be configured normally via configuration file at `.librarian/chef/config`. Again, if you change the path where cookbooks are installed by Librarian-Chef, make sure your Vagrantfile is updated to tell Vagrant's Chef provisioner where to look for them via the `cookbooks_path` attribute.
|
42
|
+
|
43
|
+
If you want to programmtically disable the plugin without uninstalling it, set the `enabled` attribute to false:
|
44
|
+
|
45
|
+
``` ruby
|
46
|
+
config.librarian_chef.enabled = false
|
47
|
+
```
|
48
|
+
|
41
49
|
## Development
|
42
50
|
|
51
|
+
Vagrant 1.5.0 or greater is required.
|
52
|
+
|
43
53
|
``` bash
|
44
54
|
bundle
|
45
55
|
bundle exec vagrant up
|
@@ -47,7 +57,7 @@ bundle exec vagrant up
|
|
47
57
|
|
48
58
|
## Acknowledgements
|
49
59
|
|
50
|
-
Thank you to @thegcat and other contributors for their work on
|
60
|
+
Thank you to [@thegcat](https://github.com/thegcat) and other contributors for their work on
|
51
61
|
[vagrant-librarian](https://github.com/thegcat/vagrant-librarian), an earlier
|
52
62
|
version of this functionality for Vagrant 1.0.x and the original Librarian gem
|
53
63
|
with integrated Librarian-Chef.
|
data/Vagrantfile
CHANGED
@@ -2,20 +2,12 @@
|
|
2
2
|
# -*- mode: ruby -*-
|
3
3
|
# vi: set ft=ruby :
|
4
4
|
|
5
|
-
require "vagrant-
|
5
|
+
require "vagrant-librarian-chef"
|
6
6
|
|
7
7
|
Vagrant.configure("2") do |config|
|
8
|
-
config.vm.box = "
|
9
|
-
config.vm.box_url = "http://files.vagrantup.com/precise64.box"
|
8
|
+
config.vm.box = "chef/ubuntu-14.04"
|
10
9
|
|
11
|
-
|
12
|
-
# pointing to the officially installed Vagrant. You must also be running the same version
|
13
|
-
# of Ruby.
|
14
|
-
#
|
15
|
-
# $ VAGRANT_INSTALLER_EMBEDDED_DIR=/Applications/Vagrant/embedded bundle exec vagrant
|
16
|
-
config.vm.provider :vmware_fusion do |v, override|
|
17
|
-
override.vm.box_url = "http://files.vagrantup.com/precise64_vmware.box"
|
18
|
-
end
|
10
|
+
config.omnibus.chef_version = :latest
|
19
11
|
|
20
12
|
config.vm.provision :chef_solo do |chef|
|
21
13
|
chef.cookbooks_path = "cookbooks"
|
@@ -12,8 +12,36 @@ module VagrantPlugins
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def call(env)
|
15
|
-
|
15
|
+
if librarian_chef_enabled?(env)
|
16
|
+
resolve_and_install_cookbooks(env)
|
17
|
+
else
|
18
|
+
env[:ui].info "Librarian-Chef is disabled for this machine."
|
19
|
+
end
|
20
|
+
@app.call(env)
|
21
|
+
end
|
22
|
+
|
23
|
+
def get_project_path(env, config)
|
24
|
+
# look for a Cheffile in the configured cheffile_dir
|
25
|
+
if FileTest.exist? File.join(env[:root_path], config.cheffile_path)
|
26
|
+
return File.join(env[:root_path], config.cheffile_dir)
|
27
|
+
elsif FileTest.exist? File.expand_path(config.cheffile_path)
|
28
|
+
return File.expand_path(config.cheffile_dir)
|
29
|
+
end
|
30
|
+
end
|
16
31
|
|
32
|
+
# Determine if the Librarian-chef plugin should be run for the given environment
|
33
|
+
#
|
34
|
+
# @param [Vagrant::Environment] env
|
35
|
+
#
|
36
|
+
# @return [Boolean]
|
37
|
+
def librarian_chef_enabled?(env)
|
38
|
+
env[:machine].config.librarian_chef.enabled
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def resolve_and_install_cookbooks(env)
|
44
|
+
config = env[:machine].config.librarian_chef
|
17
45
|
project_path = get_project_path(env, config)
|
18
46
|
if project_path
|
19
47
|
env[:ui].info "Installing Chef cookbooks with Librarian-Chef..."
|
@@ -26,16 +54,6 @@ module VagrantPlugins
|
|
26
54
|
else
|
27
55
|
env[:ui].info "Couldn't find Cheffile at #{config.cheffile_path}."
|
28
56
|
end
|
29
|
-
@app.call(env)
|
30
|
-
end
|
31
|
-
|
32
|
-
def get_project_path(env, config)
|
33
|
-
# look for a Cheffile in the configured cheffile_dir
|
34
|
-
if FileTest.exist? File.join(env[:root_path], config.cheffile_path)
|
35
|
-
return File.join(env[:root_path], config.cheffile_dir)
|
36
|
-
elsif FileTest.exist? File.expand_path(config.cheffile_path)
|
37
|
-
return File.expand_path(config.cheffile_dir)
|
38
|
-
end
|
39
57
|
end
|
40
58
|
end
|
41
59
|
end
|
@@ -1,10 +1,17 @@
|
|
1
1
|
module VagrantPlugins
|
2
2
|
module LibrarianChef
|
3
3
|
class Config < Vagrant.plugin(2, :config)
|
4
|
+
# The path to the directory containing the Cheffile.
|
5
|
+
# @return [String] The path.
|
4
6
|
attr_accessor :cheffile_dir
|
5
7
|
|
8
|
+
# Whether or not the plugin is enabled. If disabled, it will have no effect.
|
9
|
+
# @return [Boolean] The value of the enabled flag.
|
10
|
+
attr_accessor :enabled
|
11
|
+
|
6
12
|
def initialize
|
7
13
|
@cheffile_dir = UNSET_VALUE
|
14
|
+
@enabled = true
|
8
15
|
end
|
9
16
|
|
10
17
|
def finalize!
|
@@ -10,9 +10,9 @@ module VagrantPlugins
|
|
10
10
|
module LibrarianChef
|
11
11
|
class Plugin < Vagrant.plugin("2")
|
12
12
|
name "vagrant-librarian-chef"
|
13
|
-
|
14
|
-
A Vagrant plugin to install Chef cookbooks using Librarian-Chef.
|
15
|
-
|
13
|
+
|
14
|
+
description "A Vagrant plugin to install Chef cookbooks using Librarian-Chef."
|
15
|
+
|
16
16
|
action_hook "librarian_chef" do |hook|
|
17
17
|
hook.before Vagrant::Action::Builtin::Provision, Action::Install
|
18
18
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-librarian-chef
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jimmy Cuadra
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-07-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: librarian-chef
|