depengine 0.0.12 → 0.0.13
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/depengine.gemspec +1 -0
- data/lib/depengine/dsl/deployment.rb +33 -1
- data/lib/depengine/processor/erb_template.rb +127 -0
- data/lib/depengine/processor/properties.rb +15 -0
- data/lib/depengine/publisher/ssh.rb +9 -6
- data/lib/depengine/version.rb +1 -1
- metadata +175 -135
data/depengine.gemspec
CHANGED
@@ -166,6 +166,15 @@ module Deployment
|
|
166
166
|
template.parse_template(source, content, target, options)
|
167
167
|
end
|
168
168
|
|
169
|
+
def parse_erb_template(source, target, content, options={})
|
170
|
+
template = Processor::Template.new
|
171
|
+
template.cdb = @cdb
|
172
|
+
template.basepath = options[:basepath] || $recipe_config[:deploy_home]
|
173
|
+
options[:excludes] = [] if options[:excludes].nil?
|
174
|
+
options[:excludes] << '.svn'
|
175
|
+
template.parse_erb_template(source, content, target, options)
|
176
|
+
end
|
177
|
+
|
169
178
|
def get_all_config_parameters
|
170
179
|
# merge cdb data
|
171
180
|
$recipe_config.merge @cdb
|
@@ -204,6 +213,21 @@ module Deployment
|
|
204
213
|
$recipe_config[:application_name] ), key, value)
|
205
214
|
end
|
206
215
|
|
216
|
+
def set_cdb_parameter_4_app(module_name, app_name, key, value)
|
217
|
+
Helper.validates_presence_of $recipe_config['cdb_host'], \
|
218
|
+
"cdb_host parameter is missing"
|
219
|
+
Helper.validates_presence_of $recipe_config['cdb_context'], \
|
220
|
+
"cdb_context parameter is missing"
|
221
|
+
|
222
|
+
cdb = Provider::CDB.new
|
223
|
+
cdb.protocol = 'http'
|
224
|
+
cdb.host = $recipe_config['cdb_host']
|
225
|
+
cdb.context = $recipe_config['cdb_context']
|
226
|
+
cdb.env = $recipe_config['ENVIRONMENT']
|
227
|
+
|
228
|
+
cdb.set_parameter(File.join( module_name, app_name ), key, value)
|
229
|
+
end
|
230
|
+
|
207
231
|
def get_dir_from_samba(source, target)
|
208
232
|
Helper.validates_presence_of @cdb['samba_repository'], "Samba repository not set"
|
209
233
|
|
@@ -441,6 +465,9 @@ module Deployment
|
|
441
465
|
|
442
466
|
properties = Processor::Properties.new
|
443
467
|
properties.properties_hash = @cdb[patch_set]
|
468
|
+
### add db_endpoint
|
469
|
+
properties.properties_hash['db_endpoint_1'] = @cdb['db_endpoint_1']
|
470
|
+
properties.properties_hash['db_endpoint_2'] = @cdb['db_endpoint_2']
|
444
471
|
properties.assigner = assigner
|
445
472
|
properties.patch(File.join($recipe_config[:deploy_home], source), \
|
446
473
|
File.join($recipe_config[:deploy_home], target, \
|
@@ -462,6 +489,9 @@ module Deployment
|
|
462
489
|
properties = Processor::Properties.new
|
463
490
|
properties.assigner = assigner
|
464
491
|
properties.properties_hash = @cdb[patch_set]
|
492
|
+
### add db_endpoint
|
493
|
+
properties.properties_hash['db_endpoint_1'] = @cdb['db_endpoint_1']
|
494
|
+
properties.properties_hash['db_endpoint_2'] = @cdb['db_endpoint_2']
|
465
495
|
properties.substitute(File.join($recipe_config[:deploy_home], source), \
|
466
496
|
File.join($recipe_config[:deploy_home], target, \
|
467
497
|
File.basename(source)))
|
@@ -485,7 +515,9 @@ module Deployment
|
|
485
515
|
properties = Processor::Properties.new
|
486
516
|
properties.assigner = assigner
|
487
517
|
properties.properties_hash = @cdb[patch_set]
|
488
|
-
|
518
|
+
### add db_endpoint
|
519
|
+
properties.properties_hash['db_endpoint_1'] = @cdb['db_endpoint_1']
|
520
|
+
properties.properties_hash['db_endpoint_2'] = @cdb['db_endpoint_2']
|
489
521
|
properties.substitute_r(source_path, target_path)
|
490
522
|
end
|
491
523
|
|
@@ -0,0 +1,127 @@
|
|
1
|
+
module Processor
|
2
|
+
class Erb_template
|
3
|
+
include Processor
|
4
|
+
attr_accessor :basepath
|
5
|
+
attr_writer :cdb
|
6
|
+
|
7
|
+
# Render a template and write the output to a file or directory
|
8
|
+
# structure under 'basepath'
|
9
|
+
def parse_template(template_source, content, outdir, options={})
|
10
|
+
Helper.validates_presence_of basepath, "Basepath not set for template engine"
|
11
|
+
# expand basepath
|
12
|
+
self.basepath = File.expand_path basepath
|
13
|
+
|
14
|
+
if File.file?( File.join( basepath, template_source ) )
|
15
|
+
source_root_path = File.join( basepath, File.dirname(template_source) )
|
16
|
+
single_file = File.join( basepath, template_source )
|
17
|
+
else
|
18
|
+
# source is a directory
|
19
|
+
source_root_path = File.join( basepath, template_source)
|
20
|
+
single_file = nil
|
21
|
+
end
|
22
|
+
target_root_path = File.join( basepath, outdir )
|
23
|
+
target_path = target_root_path
|
24
|
+
|
25
|
+
Find.find( single_file || source_root_path ) do |path|
|
26
|
+
# next if we found ourself
|
27
|
+
next if path == source_root_path
|
28
|
+
|
29
|
+
sub_dir = File.join( File.dirname( path ).split(/\//) - \
|
30
|
+
source_root_path.split(/\//) )
|
31
|
+
target_path = File.join( target_root_path, sub_dir )
|
32
|
+
target = File.join( target_path, File.basename( path ) )
|
33
|
+
|
34
|
+
if not options[:excludes].nil?
|
35
|
+
options[:excludes].each do |exclude|
|
36
|
+
if target.include? exclude
|
37
|
+
$log.writer.debug "Skip template #{target}"
|
38
|
+
Find.prune
|
39
|
+
next
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
if File.directory? path
|
45
|
+
if not File.directory? target
|
46
|
+
FileUtils.mkdir_p( target )
|
47
|
+
$log.writer.debug "Create directory #{target}"
|
48
|
+
end
|
49
|
+
else
|
50
|
+
target_file = File.join( target_path, \
|
51
|
+
File.basename(target, ".erb"))
|
52
|
+
begin
|
53
|
+
if not File.binary? path and not File.zero? path
|
54
|
+
writer = File.new(target_file, 'w')
|
55
|
+
# writer.write(parse(path, content))
|
56
|
+
writer.write(ERB.new(File.read(path)).result())
|
57
|
+
writer.close if not writer.nil?
|
58
|
+
writer = nil
|
59
|
+
else
|
60
|
+
FileUtils.cp(path, File.expand_path(target_file))
|
61
|
+
end
|
62
|
+
rescue Exception => e
|
63
|
+
$log.writer.error "Can not write output from template to #{target_file}"
|
64
|
+
$log.writer.error e.message
|
65
|
+
exit 1
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
# This function returns the output of a parsed template, 'template' can be
|
72
|
+
# a filename or a String.
|
73
|
+
def self.parse(template, content)
|
74
|
+
$log.writer.debug "Parse Template #{template}"
|
75
|
+
Template.new.parse(template, content)
|
76
|
+
end
|
77
|
+
|
78
|
+
def parse(template, content)
|
79
|
+
context = load_tags(content, @cdb)
|
80
|
+
begin
|
81
|
+
parser = Radius::Parser.new(context, :tag_prefix => 't')
|
82
|
+
template_content = ""
|
83
|
+
result = ""
|
84
|
+
if File.file? template
|
85
|
+
read_mode = ""
|
86
|
+
if RUBY_VERSION < '1.9'
|
87
|
+
read_mode = 'r'
|
88
|
+
else
|
89
|
+
read_mode = 'rb'
|
90
|
+
end
|
91
|
+
File.open(template, read_mode) do |f|
|
92
|
+
c = ""
|
93
|
+
f.ungetc c unless (c = f.getc)=="\uFEFF" # remove BOM, if present
|
94
|
+
while line = f.gets
|
95
|
+
template_content << line
|
96
|
+
end
|
97
|
+
end
|
98
|
+
else
|
99
|
+
template_content = template
|
100
|
+
end
|
101
|
+
|
102
|
+
result = parser.parse(template_content)
|
103
|
+
nested_result_1 = ""
|
104
|
+
nested_result_2 = result
|
105
|
+
nested_loop = 0
|
106
|
+
while( nested_result_1 != nested_result_2 )
|
107
|
+
if nested_loop >= 100
|
108
|
+
$log.writer.error "Template stack overflow, too many nested tags"
|
109
|
+
exit 1
|
110
|
+
end
|
111
|
+
nested_result_1 = parser.parse(nested_result_2)
|
112
|
+
nested_result_2 = parser.parse(nested_result_1)
|
113
|
+
|
114
|
+
nested_loop = nested_loop + 1
|
115
|
+
end
|
116
|
+
result = nested_result_2
|
117
|
+
rescue Exception => e
|
118
|
+
$log.writer.error "Error in template processing: #{template}"
|
119
|
+
$log.writer.error e.message
|
120
|
+
exit 1
|
121
|
+
end
|
122
|
+
|
123
|
+
result
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
@@ -61,6 +61,13 @@ module Processor
|
|
61
61
|
else
|
62
62
|
entry = entry.sub(keyvalue[1].strip, \
|
63
63
|
properties_hash[keyvalue[0].strip])
|
64
|
+
### patch global variable
|
65
|
+
if not entry.nil? and entry.include?('<t:db_endpoint_1/>')
|
66
|
+
entry = entry.sub(/<t\:db_endpoint_1\/>/, properties_hash['db_endpoint_1'])
|
67
|
+
end
|
68
|
+
if not entry.nil? and entry.include?('<t:db_endpoint_2/>')
|
69
|
+
entry = entry.sub(/<t\:db_endpoint_2\/>/, properties_hash['db_endpoint_2'])
|
70
|
+
end
|
64
71
|
end
|
65
72
|
end
|
66
73
|
end
|
@@ -93,6 +100,14 @@ module Processor
|
|
93
100
|
properties_hash.keys.each { |hashkey|
|
94
101
|
hashkey = hashkey.to_s
|
95
102
|
entry = entry.sub(hashkey, properties_hash[hashkey].to_s)
|
103
|
+
### patch global variable
|
104
|
+
if not entry.nil? and entry.include?('<t:db_endpoint_1/>')
|
105
|
+
entry = entry.sub(/<t\:db_endpoint_1\/>/, properties_hash['db_endpoint_1'])
|
106
|
+
end
|
107
|
+
if not entry.nil? and entry.include?('<t:db_endpoint_2/>')
|
108
|
+
entry = entry.sub(/<t\:db_endpoint_2\/>/, properties_hash['db_endpoint_2'])
|
109
|
+
end
|
110
|
+
|
96
111
|
}
|
97
112
|
target_file.puts entry
|
98
113
|
}
|
@@ -31,12 +31,15 @@ module Publisher
|
|
31
31
|
exit 1
|
32
32
|
end
|
33
33
|
|
34
|
-
ch.on_data do |ch, data|
|
35
|
-
if
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
34
|
+
ch.on_data do |ch, type, data|
|
35
|
+
raise "could not execute command" if type.nil?
|
36
|
+
$log.writer.info type
|
37
|
+
$log.writer.info data
|
38
|
+
# if type.nil?
|
39
|
+
# $log.writer.debug "Command successfully executed"
|
40
|
+
# else
|
41
|
+
# $log.writer.debug data
|
42
|
+
# end
|
40
43
|
end
|
41
44
|
|
42
45
|
ch.on_extended_data do |ch, type, data|
|
data/lib/depengine/version.rb
CHANGED
metadata
CHANGED
@@ -1,171 +1,177 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: depengine
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 5
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 13
|
10
|
+
version: 0.0.13
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Team Automatisierung
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
17
|
+
|
18
|
+
date: 2013-08-14 00:00:00 +02:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
15
22
|
name: json
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
|
-
requirements:
|
19
|
-
- - ~>
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: '1.4'
|
22
|
-
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
25
|
none: false
|
26
|
-
requirements:
|
26
|
+
requirements:
|
27
27
|
- - ~>
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
requirements:
|
35
|
-
- - ! '>='
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
version: '0'
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 7
|
30
|
+
segments:
|
31
|
+
- 1
|
32
|
+
- 4
|
33
|
+
version: "1.4"
|
38
34
|
type: :runtime
|
35
|
+
version_requirements: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: net-ssh
|
39
38
|
prerelease: false
|
40
|
-
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
40
|
none: false
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
none: false
|
50
|
-
requirements:
|
51
|
-
- - ! '>='
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '0'
|
41
|
+
requirements:
|
42
|
+
- - ">="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
hash: 3
|
45
|
+
segments:
|
46
|
+
- 0
|
47
|
+
version: "0"
|
54
48
|
type: :runtime
|
49
|
+
version_requirements: *id002
|
50
|
+
- !ruby/object:Gem::Dependency
|
51
|
+
name: net-sftp
|
55
52
|
prerelease: false
|
56
|
-
|
53
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
57
54
|
none: false
|
58
|
-
requirements:
|
59
|
-
- -
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
none: false
|
66
|
-
requirements:
|
67
|
-
- - ! '>='
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: '0'
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
hash: 3
|
59
|
+
segments:
|
60
|
+
- 0
|
61
|
+
version: "0"
|
70
62
|
type: :runtime
|
63
|
+
version_requirements: *id003
|
64
|
+
- !ruby/object:Gem::Dependency
|
65
|
+
name: net-scp
|
71
66
|
prerelease: false
|
72
|
-
|
67
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
73
68
|
none: false
|
74
|
-
requirements:
|
75
|
-
- -
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
none: false
|
82
|
-
requirements:
|
83
|
-
- - ! '>='
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
version: '0'
|
69
|
+
requirements:
|
70
|
+
- - ">="
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
hash: 3
|
73
|
+
segments:
|
74
|
+
- 0
|
75
|
+
version: "0"
|
86
76
|
type: :runtime
|
77
|
+
version_requirements: *id004
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: log4r
|
87
80
|
prerelease: false
|
88
|
-
|
81
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
89
82
|
none: false
|
90
|
-
requirements:
|
91
|
-
- -
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
none: false
|
98
|
-
requirements:
|
99
|
-
- - ! '>='
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
version: '0'
|
83
|
+
requirements:
|
84
|
+
- - ">="
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
hash: 3
|
87
|
+
segments:
|
88
|
+
- 0
|
89
|
+
version: "0"
|
102
90
|
type: :runtime
|
91
|
+
version_requirements: *id005
|
92
|
+
- !ruby/object:Gem::Dependency
|
93
|
+
name: pony
|
103
94
|
prerelease: false
|
104
|
-
|
95
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
105
96
|
none: false
|
106
|
-
requirements:
|
107
|
-
- -
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
none: false
|
114
|
-
requirements:
|
115
|
-
- - ! '>='
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
97
|
+
requirements:
|
98
|
+
- - ">="
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
hash: 3
|
101
|
+
segments:
|
102
|
+
- 0
|
103
|
+
version: "0"
|
118
104
|
type: :runtime
|
105
|
+
version_requirements: *id006
|
106
|
+
- !ruby/object:Gem::Dependency
|
107
|
+
name: ptools
|
119
108
|
prerelease: false
|
120
|
-
|
109
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
121
110
|
none: false
|
122
|
-
requirements:
|
123
|
-
- -
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
|
126
|
-
|
111
|
+
requirements:
|
112
|
+
- - ">="
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
hash: 3
|
115
|
+
segments:
|
116
|
+
- 0
|
117
|
+
version: "0"
|
118
|
+
type: :runtime
|
119
|
+
version_requirements: *id007
|
120
|
+
- !ruby/object:Gem::Dependency
|
127
121
|
name: radius
|
128
|
-
|
122
|
+
prerelease: false
|
123
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
129
124
|
none: false
|
130
|
-
requirements:
|
131
|
-
- -
|
132
|
-
- !ruby/object:Gem::Version
|
133
|
-
|
125
|
+
requirements:
|
126
|
+
- - ">="
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
hash: 3
|
129
|
+
segments:
|
130
|
+
- 0
|
131
|
+
version: "0"
|
134
132
|
type: :runtime
|
133
|
+
version_requirements: *id008
|
134
|
+
- !ruby/object:Gem::Dependency
|
135
|
+
name: expect4r
|
135
136
|
prerelease: false
|
136
|
-
|
137
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
137
138
|
none: false
|
138
|
-
requirements:
|
139
|
-
- -
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
|
142
|
-
|
139
|
+
requirements:
|
140
|
+
- - ">="
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
hash: 3
|
143
|
+
segments:
|
144
|
+
- 0
|
145
|
+
version: "0"
|
146
|
+
type: :runtime
|
147
|
+
version_requirements: *id009
|
148
|
+
- !ruby/object:Gem::Dependency
|
143
149
|
name: rspec
|
144
|
-
requirement: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
|
-
requirements:
|
147
|
-
- - ~>
|
148
|
-
- !ruby/object:Gem::Version
|
149
|
-
version: '2'
|
150
|
-
type: :development
|
151
150
|
prerelease: false
|
152
|
-
|
151
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
153
152
|
none: false
|
154
|
-
requirements:
|
153
|
+
requirements:
|
155
154
|
- - ~>
|
156
|
-
- !ruby/object:Gem::Version
|
157
|
-
|
155
|
+
- !ruby/object:Gem::Version
|
156
|
+
hash: 7
|
157
|
+
segments:
|
158
|
+
- 2
|
159
|
+
version: "2"
|
160
|
+
type: :development
|
161
|
+
version_requirements: *id010
|
158
162
|
description: Simply generates Depengine text.
|
159
|
-
email:
|
163
|
+
email:
|
160
164
|
- team-automatisierung@sinnerschrader.com
|
161
|
-
executables:
|
165
|
+
executables:
|
162
166
|
- de
|
163
167
|
- depengine
|
164
168
|
- depengine.sh
|
165
169
|
- cdb_crypt
|
166
170
|
extensions: []
|
171
|
+
|
167
172
|
extra_rdoc_files: []
|
168
|
-
|
173
|
+
|
174
|
+
files:
|
169
175
|
- .gitignore
|
170
176
|
- Gemfile
|
171
177
|
- Gemfile.lock
|
@@ -2654,6 +2660,7 @@ files:
|
|
2654
2660
|
- lib/depengine/helper/validations.rb
|
2655
2661
|
- lib/depengine/helper/yaml.rb
|
2656
2662
|
- lib/depengine/log/log.rb
|
2663
|
+
- lib/depengine/processor/erb_template.rb
|
2657
2664
|
- lib/depengine/processor/fileops.rb
|
2658
2665
|
- lib/depengine/processor/properties.rb
|
2659
2666
|
- lib/depengine/processor/sed.rb
|
@@ -2699,28 +2706,61 @@ files:
|
|
2699
2706
|
- spec/watchr
|
2700
2707
|
- spec/zip/source/dummy.zip
|
2701
2708
|
- spec/zip_spec.rb
|
2709
|
+
has_rdoc: true
|
2702
2710
|
homepage: http://www.sinnerschrader.com
|
2703
2711
|
licenses: []
|
2712
|
+
|
2704
2713
|
post_install_message:
|
2705
2714
|
rdoc_options: []
|
2706
|
-
|
2715
|
+
|
2716
|
+
require_paths:
|
2707
2717
|
- lib
|
2708
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
2718
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
2709
2719
|
none: false
|
2710
|
-
requirements:
|
2711
|
-
- -
|
2712
|
-
- !ruby/object:Gem::Version
|
2720
|
+
requirements:
|
2721
|
+
- - ">="
|
2722
|
+
- !ruby/object:Gem::Version
|
2723
|
+
hash: 57
|
2724
|
+
segments:
|
2725
|
+
- 1
|
2726
|
+
- 8
|
2727
|
+
- 7
|
2713
2728
|
version: 1.8.7
|
2714
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
2729
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
2715
2730
|
none: false
|
2716
|
-
requirements:
|
2717
|
-
- -
|
2718
|
-
- !ruby/object:Gem::Version
|
2719
|
-
|
2731
|
+
requirements:
|
2732
|
+
- - ">="
|
2733
|
+
- !ruby/object:Gem::Version
|
2734
|
+
hash: 3
|
2735
|
+
segments:
|
2736
|
+
- 0
|
2737
|
+
version: "0"
|
2720
2738
|
requirements: []
|
2739
|
+
|
2721
2740
|
rubyforge_project:
|
2722
|
-
rubygems_version: 1.
|
2741
|
+
rubygems_version: 1.3.7
|
2723
2742
|
signing_key:
|
2724
2743
|
specification_version: 3
|
2725
2744
|
summary: Depengine generator
|
2726
|
-
test_files:
|
2745
|
+
test_files:
|
2746
|
+
- spec/cdb_spec.rb
|
2747
|
+
- spec/deployhelper_spec.rb
|
2748
|
+
- spec/dweb_spec.rb
|
2749
|
+
- spec/fileops_spec.rb
|
2750
|
+
- spec/helper_spec.rb
|
2751
|
+
- spec/log_spec.rb
|
2752
|
+
- spec/logs/log_spec.log
|
2753
|
+
- spec/mail_spec.rb
|
2754
|
+
- spec/properties_spec.rb
|
2755
|
+
- spec/repository_spec.rb
|
2756
|
+
- spec/ssh_spec.rb
|
2757
|
+
- spec/template_spec.rb
|
2758
|
+
- spec/templates/base/sub1/single.tpl
|
2759
|
+
- spec/templates/base/sub2/multi1.tpl
|
2760
|
+
- spec/templates/base/sub2/multi2.tpl
|
2761
|
+
- spec/templates/base/sub2/multi3.tpl
|
2762
|
+
- spec/templates/single.tpl
|
2763
|
+
- spec/templates/single_hash.tpl
|
2764
|
+
- spec/watchr
|
2765
|
+
- spec/zip/source/dummy.zip
|
2766
|
+
- spec/zip_spec.rb
|