Class: FRM::Deb
Instance Method Summary
collapse
Methods inherited from Base
#compute_md5, #compute_sha1, #compute_sha2, #generate_gzip_pipe, #gpg_clearsign, #gpg_detached, #gunzip_pipe, #merge_package_file, #parse_package_stub
Constructor Details
#initialize ⇒ Deb
Returns a new instance of Deb.
153
154
|
# File 'lib/frm/deb.rb', line 153
def initialize()
end
|
Instance Method Details
#generate_package_file(in_packages = []) ⇒ Object
156
157
158
159
160
161
|
# File 'lib/frm/deb.rb', line 156
def generate_package_file(in_packages=[])
packages = in_packages.dup
package_file = ''
packages.each { |package| package_file << generate_package_stub(package) }
return package_file
end
|
#generate_package_line(key = '', value = '') ⇒ Object
192
193
194
195
196
197
198
199
200
201
202
203
204
|
# File 'lib/frm/deb.rb', line 192
def generate_package_line(key='',value='')
valid_options = %w{Package Version Architecture Maintainer Standards-Version Homepage Priority Depends Filename Size SHA256 SHA1 MD5sum Description}
raise "Bogus option passed: #{key}" unless valid_options.include?(key)
case key
when 'Depends'
return "Depends: #{value.join(', ')}\n"
when 'Maintainer'
return "Maintainer: <#{value}>\n"
else
return "#{key}: #{value}\n"
end
end
|
#generate_package_release ⇒ Object
182
183
184
185
186
187
188
189
|
# File 'lib/frm/deb.rb', line 182
def generate_package_release
return "Component: main
Origin: apt.cloudscaling.com
Label: apt repository natty
Architecture: amd64
Description: Cloudscaling APT repository
"
end
|
#generate_package_stub(in_package = {}) ⇒ Object
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
|
# File 'lib/frm/deb.rb', line 164
def generate_package_stub(in_package={})
package = in_package.dup
package_stub = ''
description = package.delete('Description') || "no description given"
path_to_deb = package.delete 'path_to_deb'
section = package.delete 'section'
package["Filename"] = "pool/#{section}/#{package['Package'][0]}/#{package['Package']}/#{package['Package']}_#{package['Version']}_#{package['Architecture']}.deb"
package["Size"] = File.new(path_to_deb).size
package["MD5sum"] = self.compute_md5 File.read path_to_deb
package["SHA1"] = compute_sha1 File.read path_to_deb
package["SHA256"] = compute_sha2 File.read path_to_deb
package["Description"] = description
package.each { |key,value| package_stub << generate_package_line(key,value) }
package_stub << "\n"
return package_stub
end
|