vagrant-yaybu 0.0.1 → 0.0.2

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.
data/Vagrantfile ADDED
@@ -0,0 +1,38 @@
1
+ # This is a demo Vagrantfile to prove that vagrant-yaybu is working correctly
2
+
3
+ # When you install this gem (using ``gem install vagrant-yaybu``) you do not
4
+ # need to ``require`` the provisioner. We do so here so that the development
5
+ # version is loaded.
6
+ require "lib/vagrant-yaybu/provisioner.rb"
7
+
8
+
9
+ Vagrant::Config.run do |config|
10
+ config.vm.box = "lucid64"
11
+ config.vm.box_url = "http://files.vagrantup.com/lucid64.box"
12
+
13
+ config.vm.provision :yaybu do |cfg|
14
+
15
+ # You can add directories and remote locations to the search path
16
+ # Both Yay files and assets (templates, etc) will be fetched from here.
17
+ # The default search path is the current working directory
18
+ cfg.searchpath << "../Projects/yaybu-configuration/"
19
+ cfg.searchpath << "https://raw.github.com/isotoma/yaybu-examples/master/"
20
+
21
+ # You can load any config that is on the searchpath
22
+ cfg.include << "configuration/minecraft.yay"
23
+
24
+ # The ``yay`` parameter lets you put arbritrary config inside your Vagrant file
25
+ cfg.yay = <<-EOS
26
+ resources.append:
27
+ - Execute:
28
+ name: example
29
+ command: date
30
+ EOS
31
+
32
+ # Advanced Yaybu hackers might not want to use the default python or a packaged
33
+ # version of Yaybu. You can set this to point at your development environment.
34
+ cfg.python = "/opt/virtualenvs/yaybu/bin/python"
35
+
36
+ end
37
+ end
38
+
@@ -0,0 +1,15 @@
1
+ #! /bin/bash
2
+
3
+ bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
4
+
5
+ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"' >> ~/.bash_profile
6
+
7
+ . "$HOME/.rvm/scripts/rvm"
8
+
9
+ rvm install 1.9.2
10
+ rvm use 1.9.2
11
+ rvm --default 1.9.2
12
+
13
+ gem update
14
+ gem install vagrant vagrant-snap vagrant-yaybu
15
+
@@ -22,25 +22,39 @@ from yay.config import Config
22
22
  from yaybu.core.remote import RemoteRunner
23
23
  from yaybu.core.runcontext import RunContext
24
24
 
25
- raw_config = StringIO.StringIO("""
26
- <%= yay %>
27
- """)
28
-
29
- config = Config()
30
- config.load(raw_config)
31
-
32
25
  class opts:
33
26
  log_level = "info"
34
27
  logfile = "-"
35
28
  host = "<%= ssh_user %>@<%= ssh_host %>:<%= ssh_port %>"
36
29
  user = "root"
37
- ypath = []
30
+ ypath = [
31
+ <% searchpath.each do |path| %>
32
+ "<%= path %>",
33
+ <% end %>
34
+ ]
38
35
  simulate = False
39
36
  verbose = False
40
37
  resume = True
41
38
  no_resume = False
42
39
  env_passthrough = []
43
40
 
41
+ includes = StringIO.StringIO("""
42
+ <% if includes.length > 0 %>
43
+ .include:
44
+ <% includes.each do |include| %>
45
+ - <%= include %>
46
+ <% end %>
47
+ <% end %>
48
+ """)
49
+
50
+ raw_config = StringIO.StringIO("""
51
+ <%= yay %>
52
+ """)
53
+
54
+ config = Config(searchpath=opts.ypath)
55
+ config.load(includes)
56
+ config.load(raw_config)
57
+
44
58
  ctx = RunContext(None, opts)
45
59
  ctx.set_config(config)
46
60
 
@@ -66,10 +80,14 @@ module Vagrant
66
80
  class Config < Vagrant::Config::Base
67
81
  attr_accessor :yay
68
82
  attr_accessor :python
83
+ attr_accessor :searchpath
84
+ attr_accessor :include
69
85
 
70
86
  def initialize
71
87
  @yay = ""
72
88
  @python = "python"
89
+ @searchpath = []
90
+ @include = []
73
91
  end
74
92
  end
75
93
 
@@ -89,7 +107,24 @@ module Vagrant
89
107
  def prepare
90
108
  end
91
109
 
110
+ def verify_import(mod)
111
+ if not system("#{config.python}", "-c", "import #{mod}") then
112
+ raise YaybuError.new "Module #{mod} not found"
113
+ end
114
+ end
115
+
116
+ def verify_local_binary(binary)
117
+ if not system("which #{binary}") then
118
+ raise YaybuError.new "Local binary #{binary} not found"
119
+ end
120
+ end
121
+
92
122
  def provision!
123
+ verify_import "yaybu"
124
+ verify_import "yay"
125
+
126
+ verify_local_binary "ssh"
127
+
93
128
  bootstrap
94
129
 
95
130
  deployment_script = TemplateRenderer.render_string($deploy_script, {
@@ -98,6 +133,8 @@ module Vagrant
98
133
  :ssh_port => vm.ssh.port,
99
134
  :private_key_path => vm.env.config.ssh.private_key_path,
100
135
  :yay => config.yay,
136
+ :searchpath => config.searchpath,
137
+ :includes => config.include,
101
138
  })
102
139
 
103
140
  IO.popen("#{config.python} -", "r+") do |io|
@@ -1,5 +1,5 @@
1
1
  module Vagrant
2
2
  module Yaybu
3
- VERSION = "0.0.1"
3
+ VERSION = "0.0.2"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,75 +1,55 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: vagrant-yaybu
3
- version: !ruby/object:Gem::Version
4
- hash: 29
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 0
9
- - 1
10
- version: 0.0.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - John Carr
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-11-07 00:00:00 +00:00
19
- default_executable:
12
+ date: 2011-11-10 00:00:00.000000000Z
20
13
  dependencies: []
21
-
22
14
  description: This plugin adds a Yaybu 'push' provisioner to Vagrant
23
- email:
15
+ email:
24
16
  - john.carr@isotoma.com
25
17
  executables: []
26
-
27
18
  extensions: []
28
-
29
19
  extra_rdoc_files: []
30
-
31
- files:
20
+ files:
32
21
  - .gitignore
33
22
  - Gemfile
34
23
  - Rakefile
24
+ - Vagrantfile
25
+ - install-vagrant.sh
35
26
  - lib/vagrant-yaybu.rb
36
27
  - lib/vagrant-yaybu/provisioner.rb
37
28
  - lib/vagrant-yaybu/version.rb
38
29
  - lib/vagrant_init.rb
39
30
  - vagrant-yaybu.gemspec
40
- has_rdoc: true
41
- homepage: ""
31
+ homepage: ''
42
32
  licenses: []
43
-
44
33
  post_install_message:
45
34
  rdoc_options: []
46
-
47
- require_paths:
35
+ require_paths:
48
36
  - lib
49
- required_ruby_version: !ruby/object:Gem::Requirement
37
+ required_ruby_version: !ruby/object:Gem::Requirement
50
38
  none: false
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- hash: 3
55
- segments:
56
- - 0
57
- version: "0"
58
- required_rubygems_version: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ! '>='
41
+ - !ruby/object:Gem::Version
42
+ version: '0'
43
+ required_rubygems_version: !ruby/object:Gem::Requirement
59
44
  none: false
60
- requirements:
61
- - - ">="
62
- - !ruby/object:Gem::Version
63
- hash: 3
64
- segments:
65
- - 0
66
- version: "0"
45
+ requirements:
46
+ - - ! '>='
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
67
49
  requirements: []
68
-
69
50
  rubyforge_project: vagrant-yaybu
70
- rubygems_version: 1.3.7
51
+ rubygems_version: 1.8.10
71
52
  signing_key:
72
53
  specification_version: 3
73
54
  summary: Teach Vagrant about Yaybu
74
55
  test_files: []
75
-