devstructure 0.1.2 → 0.1.3
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/devstructure/blueprint.rb +33 -46
- data/lib/devstructure/puppet.rb +14 -4
- metadata +4 -4
@@ -59,27 +59,10 @@ class DevStructure::Blueprint < Hash
|
|
59
59
|
)
|
60
60
|
|
61
61
|
# Second pass removes managers that manage no packages.
|
62
|
-
# For RubyGems we have to dig a little deeper to see what is managed
|
63
|
-
# by rubygems-update.
|
64
62
|
b.walk(
|
65
63
|
:package => lambda { |manager, command, package, version|
|
66
64
|
return unless b.packages[package]
|
67
|
-
test = if package =~ /^rubygems(\d+\.\d+(?:\.\d+)?)$/
|
68
|
-
b.packages["rubygems-update"]
|
69
|
-
else
|
70
|
-
b.packages[package]
|
71
|
-
end
|
72
|
-
if test
|
73
|
-
case test["_packages"].length
|
74
|
-
when 0
|
75
|
-
when 1
|
76
|
-
return unless test["_packages"]["rubygems-update"]
|
77
|
-
else
|
78
|
-
return
|
79
|
-
end
|
80
|
-
end
|
81
65
|
p = b.packages[manager]["_packages"]
|
82
|
-
p.delete package
|
83
66
|
b.packages.delete manager if 0 == p.length
|
84
67
|
}
|
85
68
|
)
|
@@ -130,8 +113,10 @@ EOF
|
|
130
113
|
:package => lambda { |manager, command, package, version|
|
131
114
|
return if manager == package
|
132
115
|
printf "#{command}\n", package, version
|
133
|
-
if "
|
134
|
-
puts "
|
116
|
+
if "apt" == manager && package =~ /^rubygems(\d+\.\d+(?:\.\d+)?)$/
|
117
|
+
puts "/usr/bin/gem#{$1} install rubygems-update"
|
118
|
+
puts "PATH=\"$PATH:/var/lib/gems/#{$1}/bin\" /usr/bin/ruby#{
|
119
|
+
$1} /usr/bin/update_rubygems"
|
135
120
|
end
|
136
121
|
}
|
137
122
|
)
|
@@ -181,33 +166,49 @@ EOF
|
|
181
166
|
command =~ /gem(\d+\.\d+(?:\.\d+)?) install/
|
182
167
|
ruby_version = $1
|
183
168
|
case manager
|
169
|
+
|
184
170
|
when "apt"
|
185
171
|
unless manager == package
|
186
172
|
manifest[manager] << Package.new(package, :ensure => version)
|
187
173
|
end
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
174
|
+
|
175
|
+
# Update RubyGems.
|
176
|
+
if package =~ /^rubygems(\d+\.\d+(?:\.\d+)?)$/
|
177
|
+
v = $1
|
178
|
+
prereq = if "1.8" == v
|
179
|
+
manifest[manager] << Package.new("rubygems-update",
|
180
|
+
:require => Package["rubygems1.8"],
|
181
|
+
:provider => :gem,
|
182
|
+
:ensure => :latest
|
183
|
+
)
|
184
|
+
Package["rubygems1.8"]
|
185
|
+
else
|
186
|
+
manifest[manager] << Exec.new(
|
187
|
+
"/usr/bin/gem#{v} install --no-rdoc --no-ri rubygems-update",
|
188
|
+
:alias => "rubygems-update-#{v}",
|
189
|
+
:require => Package["rubygems#{v}"]
|
190
|
+
)
|
191
|
+
Exec["rubygems-update-#{v}"]
|
192
|
+
end
|
193
|
+
manifest[manager] << Exec.new(
|
194
|
+
"/usr/bin/ruby#{v} /usr/bin/update_rubygems",
|
195
|
+
:path => %W(/usr/bin /var/lib/gems/#{v}/bin),
|
196
|
+
:require => prereq
|
198
197
|
)
|
199
198
|
end
|
200
|
-
|
199
|
+
|
200
|
+
# Only 1.8 can use the native gem package provider.
|
201
|
+
when "rubygems1.8"
|
201
202
|
options = {
|
202
203
|
:require => [
|
203
204
|
Puppet::Class[managers[manager]],
|
204
|
-
Package["
|
205
|
+
Package["rubygems1.8"],
|
205
206
|
],
|
206
207
|
:provider => :gem,
|
207
208
|
:ensure => version
|
208
209
|
}
|
209
|
-
options[:require] += [Package[manager]] unless manager == package
|
210
210
|
manifest[manager] << Package.new(package, options)
|
211
|
+
|
211
212
|
when /python/
|
212
213
|
manifest[manager] << Exec.new(sprintf("#{command}", package),
|
213
214
|
:require => [
|
@@ -226,20 +227,6 @@ EOF
|
|
226
227
|
]
|
227
228
|
)
|
228
229
|
end
|
229
|
-
},
|
230
|
-
:after => lambda { |manager, command|
|
231
|
-
p = packages[manager]["_packages"]
|
232
|
-
return if 0 == p.length || 1 == p.length && manager == p.keys.first
|
233
|
-
|
234
|
-
# Update RubyGems if we're through with gems in Debian's location.
|
235
|
-
return unless manager =~ /^rubygems\d+\.\d+(?:\.\d+)?$/
|
236
|
-
return unless p["rubygems-update"]
|
237
|
-
manifest[manager] << Exec.new("update_rubygems",
|
238
|
-
:subscribe => Package["rubygems-update"],
|
239
|
-
:path => %w(/usr/bin /var/lib/gems/1.8/bin),
|
240
|
-
:refreshonly => true
|
241
|
-
)
|
242
|
-
|
243
230
|
}
|
244
231
|
)
|
245
232
|
|
data/lib/devstructure/puppet.rb
CHANGED
@@ -15,7 +15,7 @@ module DevStructure::Puppet
|
|
15
15
|
|
16
16
|
def initialize(name, parent=nil)
|
17
17
|
@name, @parent = name, parent
|
18
|
-
@manifests, @resources = {},
|
18
|
+
@manifests, @resources = {}, {}
|
19
19
|
end
|
20
20
|
|
21
21
|
# Return a reference to a sub-manifest of the given name.
|
@@ -28,7 +28,8 @@ module DevStructure::Puppet
|
|
28
28
|
|
29
29
|
# Add a resource to this manifest.
|
30
30
|
def <<(resource)
|
31
|
-
@resources
|
31
|
+
@resources[resource.type] ||= []
|
32
|
+
@resources[resource.type] << resource
|
32
33
|
end
|
33
34
|
|
34
35
|
def to_s(tab="")
|
@@ -37,8 +38,17 @@ module DevStructure::Puppet
|
|
37
38
|
@manifests.each_value do |manifest|
|
38
39
|
out << manifest.to_s("#{tab}\t")
|
39
40
|
end
|
40
|
-
@resources.each do |
|
41
|
-
|
41
|
+
@resources.each do |type, resources|
|
42
|
+
if 1 < resources.length
|
43
|
+
out << "#{tab}\t#{type} {"
|
44
|
+
resources.each do |resource|
|
45
|
+
resource.style = :partial
|
46
|
+
out << resource.to_s("#{tab}\t")
|
47
|
+
end
|
48
|
+
out << "#{tab}\t}"
|
49
|
+
else
|
50
|
+
out << resources.first.to_s("#{tab}\t")
|
51
|
+
end
|
42
52
|
end
|
43
53
|
out << "#{tab}}"
|
44
54
|
out << "#{tab}include #{@name.gsub(".", "--")}" if @parent
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: devstructure
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 29
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 3
|
10
|
+
version: 0.1.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Richard Crowley
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-
|
18
|
+
date: 2010-07-12 00:00:00 +00:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|