vagrant-babushka 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +4 -0
- data/README.md +2 -0
- data/Rakefile +3 -0
- data/dist/babushka.rb +40 -0
- data/lib/vagrant-babushka.rb +2 -0
- data/lib/vagrant-babushka/provisioner.rb +19 -1
- data/lib/vagrant-babushka/version.rb +1 -1
- data/locales/en.yml +6 -0
- data/spec/unit/vagrant-babushka/provisioner_spec.rb +4 -2
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 945fa78a5766333ea60149445306c614976a7871
|
4
|
+
data.tar.gz: c8c9dc4590166a89504da041e92bc041b88aec69
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 753bf4a56e36c05c0fa386b284ed57a04949e19cad9d345789016a9e895043205ca764e528758843357e129d05b41facd7cbf768b613fc269f3d3a38b45365ac
|
7
|
+
data.tar.gz: 47d0cc20dbc85047f9cc688c277dc2746fd3313052c9cdc6357961ae4cfc1239e4412129db7794bb2393039bc83c371789a69e3f4ea4f3a09a7fbfa9f6f97f86
|
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -5,6 +5,8 @@ using [Babushka][2].
|
|
5
5
|
|
6
6
|
Based on a [plugin concept][3] by @tcurdt.
|
7
7
|
|
8
|
+
[![Build Status](https://travis-ci.org/vvalgis/vagrant-babushka.png)](https://travis-ci.org/vvalgis/vagrant-babushka.png)
|
9
|
+
|
8
10
|
[1]: <https://www.vagrantup.com>
|
9
11
|
[2]: <https://babushka.me>
|
10
12
|
[3]: <https://github.com/tcurdt/vagrant-boxes/blob/master/plugins/babushka_provisioner.rb>
|
data/Rakefile
CHANGED
data/dist/babushka.rb
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# This is a modified version of the Babushka binary that is distributed
|
4
|
+
# with Babushka. It's been modified to ensure that stdout and stderr
|
5
|
+
# are automatically flushed when written to, and not buffered.
|
6
|
+
#
|
7
|
+
# When running inside Vagrant, this is more important than the
|
8
|
+
# performance gains associated with output buffering. This is because
|
9
|
+
# Babushka often prints messages like "installing..." during a long
|
10
|
+
# operation, and these usually aren't followed by a newline. So these
|
11
|
+
# types of messages will often sit in the buffer (unseen by the user)
|
12
|
+
# for the entire duration of the long operation. The user will only see
|
13
|
+
# the "installing" message after the next newline is printed, which
|
14
|
+
# will only happen when the installation is already complete!
|
15
|
+
$stdout.sync = true
|
16
|
+
$stderr.sync = true
|
17
|
+
|
18
|
+
# This file is what gets run when babushka is invoked from the command line.
|
19
|
+
|
20
|
+
# First, load babushka itself, by traversing from the actual location of
|
21
|
+
# this file (it might have been invoked via a symlink in the PATH) to the
|
22
|
+
# corresponding lib/babushka.rb.
|
23
|
+
require File.expand_path(
|
24
|
+
File.join(
|
25
|
+
File.dirname(File.expand_path(
|
26
|
+
File.symlink?(__FILE__) ? File.readlink(__FILE__) : __FILE__
|
27
|
+
)),
|
28
|
+
'../lib/babushka'
|
29
|
+
)
|
30
|
+
)
|
31
|
+
|
32
|
+
# Mix in the #Dep, #dep & #meta top-level helper methods, since we're running
|
33
|
+
# standalone.
|
34
|
+
Object.send :include, Babushka::DSL
|
35
|
+
|
36
|
+
# Handle ctrl-c gracefully during babushka runs.
|
37
|
+
Babushka::Base.exit_on_interrupt!
|
38
|
+
|
39
|
+
# Invoke babushka, returning the correct exit status to the shell.
|
40
|
+
exit !!Babushka::Base.run
|
data/lib/vagrant-babushka.rb
CHANGED
@@ -4,6 +4,8 @@ rescue LoadError
|
|
4
4
|
raise "vagrant-babushka must be loaded from within Vagrant."
|
5
5
|
end
|
6
6
|
|
7
|
+
I18n.load_path << File.expand_path("../../locales/en.yml", __FILE__)
|
8
|
+
|
7
9
|
require "vagrant-babushka/version"
|
8
10
|
require "vagrant-babushka/dep"
|
9
11
|
require "vagrant-babushka/config"
|
@@ -98,6 +98,7 @@ module VagrantPlugins
|
|
98
98
|
install_curl! unless in_path? "curl"
|
99
99
|
create_destination!
|
100
100
|
install_babushka!
|
101
|
+
patch_babushka_binary!
|
101
102
|
ui.info "\n\n\n"
|
102
103
|
end
|
103
104
|
end
|
@@ -119,7 +120,8 @@ module VagrantPlugins
|
|
119
120
|
config.deps.each do |dep|
|
120
121
|
ui.info "Meeting Babushka dep '#{dep.id}'", :scope => name
|
121
122
|
ui.info "Executing '#{command_for(dep).strip}'...", :scope => name
|
122
|
-
|
123
|
+
options = {:error_key => "vagrant_babushka_provision_error"}
|
124
|
+
communicate.execute command_for(dep), options, &log_stdout
|
123
125
|
end
|
124
126
|
end
|
125
127
|
end
|
@@ -179,6 +181,22 @@ module VagrantPlugins
|
|
179
181
|
communicate.execute install_babushka_command, &log_stdout
|
180
182
|
end
|
181
183
|
|
184
|
+
# Installs the patched binary distributed with this plugin
|
185
|
+
#
|
186
|
+
# The patched binary ensures stdout and stderr are unbuffered,
|
187
|
+
# so they will be flushed after every write. This avoids
|
188
|
+
# progress bars and status messages from being hidden during
|
189
|
+
# long-running processes.
|
190
|
+
#
|
191
|
+
# The patched binary is at dist/babushka.rb, relative to the
|
192
|
+
# root of this project.
|
193
|
+
def patch_babushka_binary!
|
194
|
+
ui.info "Patching Babushka binary...", :scope => name
|
195
|
+
root = File.expand_path '../..', File.dirname(__FILE__)
|
196
|
+
source = File.join root, 'dist', 'babushka.rb'
|
197
|
+
communicate.upload source, '/usr/local/bin/babushka'
|
198
|
+
end
|
199
|
+
|
182
200
|
# The command used to install Babushka on the virtual machine
|
183
201
|
def install_babushka_command
|
184
202
|
%Q[#{vars} sh -c "`#{vars} curl #{escape config.bootstrap_url}`"]
|
data/locales/en.yml
ADDED
@@ -60,6 +60,7 @@ describe VagrantPlugins::Babushka::Provisioner do
|
|
60
60
|
expect(provisioner).to receive(:install_curl!)
|
61
61
|
expect(provisioner).to receive(:create_destination!)
|
62
62
|
expect(provisioner).to receive(:install_babushka!)
|
63
|
+
expect(provisioner).to receive(:patch_babushka_binary!)
|
63
64
|
expect(ui).to receive(:info).with("\n\n\n")
|
64
65
|
subject.prepare
|
65
66
|
end
|
@@ -71,6 +72,7 @@ describe VagrantPlugins::Babushka::Provisioner do
|
|
71
72
|
expect(provisioner).to_not receive(:install_curl!)
|
72
73
|
expect(provisioner).to receive(:create_destination!)
|
73
74
|
expect(provisioner).to receive(:install_babushka!)
|
75
|
+
expect(provisioner).to receive(:patch_babushka_binary!)
|
74
76
|
expect(ui).to receive(:info).with("\n\n\n")
|
75
77
|
subject.prepare
|
76
78
|
end
|
@@ -112,9 +114,9 @@ describe VagrantPlugins::Babushka::Provisioner do
|
|
112
114
|
expect(ui).to receive(:info).with("Meeting Babushka dep 'the dep 2'", :scope => "the name")
|
113
115
|
expect(ui).to receive(:info).with("Executing 'bar'...", :scope => "the name")
|
114
116
|
expect(provisioner).to receive(:command_for).with(dep1).twice().and_return("foo")
|
115
|
-
expect(communicate).to receive(:execute).with("foo")
|
117
|
+
expect(communicate).to receive(:execute).with("foo", :error_key => "vagrant_babushka_provision_error")
|
116
118
|
expect(provisioner).to receive(:command_for).with(dep2).twice().and_return("bar")
|
117
|
-
expect(communicate).to receive(:execute).with("bar")
|
119
|
+
expect(communicate).to receive(:execute).with("bar", :error_key => "vagrant_babushka_provision_error")
|
118
120
|
subject.do_babushka_run
|
119
121
|
end
|
120
122
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-babushka
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vladimir Valgis
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-12-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -76,17 +76,20 @@ extensions: []
|
|
76
76
|
extra_rdoc_files: []
|
77
77
|
files:
|
78
78
|
- .gitignore
|
79
|
+
- .travis.yml
|
79
80
|
- Gemfile
|
80
81
|
- LICENSE.txt
|
81
82
|
- README.md
|
82
83
|
- Rakefile
|
83
84
|
- Vagrantfile
|
85
|
+
- dist/babushka.rb
|
84
86
|
- lib/vagrant-babushka.rb
|
85
87
|
- lib/vagrant-babushka/config.rb
|
86
88
|
- lib/vagrant-babushka/dep.rb
|
87
89
|
- lib/vagrant-babushka/plugin.rb
|
88
90
|
- lib/vagrant-babushka/provisioner.rb
|
89
91
|
- lib/vagrant-babushka/version.rb
|
92
|
+
- locales/en.yml
|
90
93
|
- spec/spec_helper.rb
|
91
94
|
- spec/unit/vagrant-babushka/config_spec.rb
|
92
95
|
- spec/unit/vagrant-babushka/dep_spec.rb
|