dollhouse 0.2.1 → 0.2.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/lib/dollhouse/instance.rb +16 -8
- data/lib/dollhouse/local_adapter.rb +26 -0
- data/lib/dollhouse/version.rb +1 -1
- metadata +63 -129
data/lib/dollhouse/instance.rb
CHANGED
@@ -2,8 +2,8 @@ module Dollhouse
|
|
2
2
|
class Instance < Struct.new(:instance_name, :deployment_name, :server_name, :ip)
|
3
3
|
attr_accessor :user, :password
|
4
4
|
|
5
|
-
def bootstrap
|
6
|
-
cloud_adapter.execute(instance_name, %Q{bash -c "`wget -O- babushka.me/up
|
5
|
+
def bootstrap args = []
|
6
|
+
cloud_adapter.execute(instance_name, %Q{bash -c "`wget -O- babushka.me/up/#{[*args].push('hard').uniq.join(',')}`"}, default_opts)
|
7
7
|
end
|
8
8
|
|
9
9
|
def babushka taskname, vars = {}
|
@@ -11,12 +11,7 @@ module Dollhouse
|
|
11
11
|
if vars == :no_defaults
|
12
12
|
cloud_adapter.execute(instance_name, "babushka '#{taskname}'", default_opts)
|
13
13
|
else
|
14
|
-
|
15
|
-
write_file(".babushka/vars/#{taskname}", {
|
16
|
-
:vars => vars.map_keys(&:to_s).map_values { |v| {:value => v} }
|
17
|
-
}.to_yaml)
|
18
|
-
end
|
19
|
-
cloud_adapter.execute(instance_name, "babushka '#{taskname}' --defaults", default_opts)
|
14
|
+
cloud_adapter.execute(instance_name, "babushka '#{taskname}' --defaults #{cmdline_vars(vars)}", default_opts)
|
20
15
|
end
|
21
16
|
end
|
22
17
|
|
@@ -28,6 +23,10 @@ module Dollhouse
|
|
28
23
|
cloud_adapter.write_file(instance_name, path, content, default_opts.merge(opts))
|
29
24
|
end
|
30
25
|
|
26
|
+
def locally &blk
|
27
|
+
local_adapter.instance_eval &blk
|
28
|
+
end
|
29
|
+
|
31
30
|
def as user, opts = {}, &blk
|
32
31
|
old_user = self.user
|
33
32
|
old_password = self.password
|
@@ -69,9 +68,18 @@ module Dollhouse
|
|
69
68
|
opts
|
70
69
|
end
|
71
70
|
|
71
|
+
def cmdline_vars vars
|
72
|
+
vars.keys.map {|key|
|
73
|
+
%{#{key}="#{vars[key].strip.gsub('"', '\"')}"}
|
74
|
+
}.join(' ')
|
75
|
+
end
|
76
|
+
|
72
77
|
# This could return different adapters, that connect to servers in different ways. For now we have a simple
|
73
78
|
def cloud_adapter
|
74
79
|
@cloud_adapter ||= ManualConfig.new
|
75
80
|
end
|
81
|
+
def local_adapter
|
82
|
+
@local_adapter ||= LocalAdapter.new
|
83
|
+
end
|
76
84
|
end
|
77
85
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Dollhouse
|
2
|
+
class LocalAdapter
|
3
|
+
def babushka taskname, vars = {}
|
4
|
+
if !vars.empty?
|
5
|
+
write_file("~/.babushka/vars/#{taskname}", {
|
6
|
+
:vars => vars.map_keys(&:to_s).map_values {|v| {:value => v} }
|
7
|
+
}.to_yaml)
|
8
|
+
end
|
9
|
+
shell "babushka '#{taskname}' --defaults"
|
10
|
+
end
|
11
|
+
|
12
|
+
def shell cmd, opts = {}
|
13
|
+
puts "Running #{cmd}"
|
14
|
+
output = `#{cmd}`
|
15
|
+
puts output
|
16
|
+
$? == 0
|
17
|
+
end
|
18
|
+
|
19
|
+
def write_file path, content
|
20
|
+
puts "Writing to #{path}"
|
21
|
+
File.open(File.expand_path(path), "w") {|f|
|
22
|
+
f << content
|
23
|
+
}
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/dollhouse/version.rb
CHANGED
metadata
CHANGED
@@ -1,144 +1,90 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: dollhouse
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 2
|
9
|
-
- 1
|
10
|
-
version: 0.2.1
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.2
|
5
|
+
prerelease:
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Glen Maddern
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-01-02 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
22
15
|
name: main
|
23
|
-
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70137320130120 !ruby/object:Gem::Requirement
|
25
17
|
none: false
|
26
|
-
requirements:
|
18
|
+
requirements:
|
27
19
|
- - ~>
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
hash: 55
|
30
|
-
segments:
|
31
|
-
- 4
|
32
|
-
- 2
|
33
|
-
- 0
|
20
|
+
- !ruby/object:Gem::Version
|
34
21
|
version: 4.2.0
|
35
22
|
type: :runtime
|
36
|
-
version_requirements: *id001
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: fog
|
39
23
|
prerelease: false
|
40
|
-
|
24
|
+
version_requirements: *70137320130120
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: fog
|
27
|
+
requirement: &70137320129400 !ruby/object:Gem::Requirement
|
41
28
|
none: false
|
42
|
-
requirements:
|
29
|
+
requirements:
|
43
30
|
- - ~>
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
hash: 43
|
46
|
-
segments:
|
47
|
-
- 0
|
48
|
-
- 2
|
49
|
-
- 30
|
31
|
+
- !ruby/object:Gem::Version
|
50
32
|
version: 0.2.30
|
51
33
|
type: :runtime
|
52
|
-
version_requirements: *id002
|
53
|
-
- !ruby/object:Gem::Dependency
|
54
|
-
name: net-ssh
|
55
34
|
prerelease: false
|
56
|
-
|
35
|
+
version_requirements: *70137320129400
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: net-ssh
|
38
|
+
requirement: &70137320128800 !ruby/object:Gem::Requirement
|
57
39
|
none: false
|
58
|
-
requirements:
|
59
|
-
- -
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
hash: 33
|
62
|
-
segments:
|
63
|
-
- 2
|
64
|
-
- 0
|
65
|
-
- 23
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
66
43
|
version: 2.0.23
|
67
44
|
type: :runtime
|
68
|
-
version_requirements: *id003
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: net-sftp
|
71
45
|
prerelease: false
|
72
|
-
|
46
|
+
version_requirements: *70137320128800
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: net-sftp
|
49
|
+
requirement: &70137320128200 !ruby/object:Gem::Requirement
|
73
50
|
none: false
|
74
|
-
requirements:
|
51
|
+
requirements:
|
75
52
|
- - ~>
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
hash: 7
|
78
|
-
segments:
|
79
|
-
- 2
|
80
|
-
- 0
|
81
|
-
- 4
|
53
|
+
- !ruby/object:Gem::Version
|
82
54
|
version: 2.0.4
|
83
55
|
type: :runtime
|
84
|
-
version_requirements: *id004
|
85
|
-
- !ruby/object:Gem::Dependency
|
86
|
-
name: cucumber
|
87
56
|
prerelease: false
|
88
|
-
|
89
|
-
|
90
|
-
requirements:
|
91
|
-
- - ~>
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
hash: 61
|
94
|
-
segments:
|
95
|
-
- 0
|
96
|
-
- 9
|
97
|
-
- 3
|
98
|
-
version: 0.9.3
|
99
|
-
type: :development
|
100
|
-
version_requirements: *id005
|
101
|
-
- !ruby/object:Gem::Dependency
|
57
|
+
version_requirements: *70137320128200
|
58
|
+
- !ruby/object:Gem::Dependency
|
102
59
|
name: rake
|
103
|
-
|
104
|
-
requirement: &id006 !ruby/object:Gem::Requirement
|
60
|
+
requirement: &70137320127020 !ruby/object:Gem::Requirement
|
105
61
|
none: false
|
106
|
-
requirements:
|
107
|
-
- -
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
|
110
|
-
segments:
|
111
|
-
- 0
|
112
|
-
- 8
|
113
|
-
- 7
|
114
|
-
version: 0.8.7
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
115
66
|
type: :development
|
116
|
-
version_requirements: *id006
|
117
|
-
- !ruby/object:Gem::Dependency
|
118
|
-
name: rspec
|
119
67
|
prerelease: false
|
120
|
-
|
68
|
+
version_requirements: *70137320127020
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: &70137320126300 !ruby/object:Gem::Requirement
|
121
72
|
none: false
|
122
|
-
requirements:
|
123
|
-
- -
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
|
126
|
-
segments:
|
127
|
-
- 2
|
128
|
-
- 0
|
129
|
-
- 0
|
130
|
-
version: 2.0.0
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
131
77
|
type: :development
|
132
|
-
|
133
|
-
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *70137320126300
|
80
|
+
description: Dollhouse is a way to deploy servers. It is designed to be used with
|
81
|
+
Babushka.
|
134
82
|
email: glen.maddern@gmail.com
|
135
|
-
executables:
|
83
|
+
executables:
|
136
84
|
- dollhouse
|
137
85
|
extensions: []
|
138
|
-
|
139
86
|
extra_rdoc_files: []
|
140
|
-
|
141
|
-
files:
|
87
|
+
files:
|
142
88
|
- bin/dollhouse
|
143
89
|
- lib/core_ext/hash.rb
|
144
90
|
- lib/dollhouse/config_loader.rb
|
@@ -146,6 +92,7 @@ files:
|
|
146
92
|
- lib/dollhouse/dollhouse.rb
|
147
93
|
- lib/dollhouse/instance.rb
|
148
94
|
- lib/dollhouse/instances.rb
|
95
|
+
- lib/dollhouse/local_adapter.rb
|
149
96
|
- lib/dollhouse/manual_config.rb
|
150
97
|
- lib/dollhouse/remote_server.rb
|
151
98
|
- lib/dollhouse/server.rb
|
@@ -153,41 +100,28 @@ files:
|
|
153
100
|
- lib/dollhouse.rb
|
154
101
|
- LICENSE
|
155
102
|
- README.md
|
156
|
-
has_rdoc: true
|
157
103
|
homepage: http://github.com/geelen/dollhouse
|
158
104
|
licenses: []
|
159
|
-
|
160
105
|
post_install_message:
|
161
106
|
rdoc_options: []
|
162
|
-
|
163
|
-
require_paths:
|
107
|
+
require_paths:
|
164
108
|
- lib
|
165
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
109
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
166
110
|
none: false
|
167
|
-
requirements:
|
168
|
-
- -
|
169
|
-
- !ruby/object:Gem::Version
|
170
|
-
|
171
|
-
|
172
|
-
- 0
|
173
|
-
version: "0"
|
174
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
111
|
+
requirements:
|
112
|
+
- - ! '>='
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
version: '0'
|
115
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
175
116
|
none: false
|
176
|
-
requirements:
|
177
|
-
- -
|
178
|
-
- !ruby/object:Gem::Version
|
179
|
-
hash: 23
|
180
|
-
segments:
|
181
|
-
- 1
|
182
|
-
- 3
|
183
|
-
- 6
|
117
|
+
requirements:
|
118
|
+
- - ! '>='
|
119
|
+
- !ruby/object:Gem::Version
|
184
120
|
version: 1.3.6
|
185
121
|
requirements: []
|
186
|
-
|
187
122
|
rubyforge_project: dollhouse
|
188
|
-
rubygems_version: 1.
|
123
|
+
rubygems_version: 1.8.11
|
189
124
|
signing_key:
|
190
125
|
specification_version: 3
|
191
126
|
summary: A place to manage your babushkas.
|
192
127
|
test_files: []
|
193
|
-
|