class Suppository::Release
Public Class Methods
new(repo_path, dist, unsigned = false)
click to toggle source
# File lib/suppository/release.rb, line 9 def initialize(repo_path, dist, unsigned = false) @dist = dist @unsigned = unsigned @dist_path = "#{repo_path}/dists/#{dist}" @release_file = "#{@dist_path}/Release" end
Public Instance Methods
create()
click to toggle source
# File lib/suppository/release.rb, line 16 def create write_file sign unless @unsigned end
Private Instance Methods
architectures()
click to toggle source
# File lib/suppository/release.rb, line 95 def architectures directories("#{@dist_path}/*/*").collect { |d| d.split('-')[1] }.uniq.sort.join(' ') end
components()
click to toggle source
# File lib/suppository/release.rb, line 91 def components directories("#{@dist_path}/*").join(' ') end
content()
click to toggle source
# File lib/suppository/release.rb, line 27 def content result = [] result << "Codename: #{@dist}\n" result << "Architectures: #{architectures}\n" result << "Components: #{components}\n" result << "Date: #{date}\n" result << package_hashes end
date()
click to toggle source
# File lib/suppository/release.rb, line 87 def date Time.now.getutc.strftime('%a, %d %b %Y %H:%M:%S %Z') end
directories(path_pattern)
click to toggle source
# File lib/suppository/release.rb, line 99 def directories(path_pattern) directories = Dir.glob(path_pattern).select { |f| File.directory? f } directories.collect { |d| File.basename(d) } end
md5_hashes()
click to toggle source
# File lib/suppository/release.rb, line 44 def md5_hashes result = [] result << "MD5Sum:\n" packages.each { |f| result << puts_hash(f, Digest::MD5.file(f)) } result end
package_hashes()
click to toggle source
# File lib/suppository/release.rb, line 36 def package_hashes result = [] result << md5_hashes result << sha1_hashes result << sha2_hashes result << sha5_hashes end
packages()
click to toggle source
# File lib/suppository/release.rb, line 78 def packages @packages ||= Dir.glob("#{@dist_path}/*/*/Packages*").sort end
puts_hash(f, hash)
click to toggle source
# File lib/suppository/release.rb, line 82 def puts_hash(f, hash) relative = f.split(@dist_path).pop[1..-1] format(" %s %17d %s\n", hash, File.size(f), relative) end
sha1_hashes()
click to toggle source
# File lib/suppository/release.rb, line 51 def sha1_hashes result = [] result << "SHA1:\n" packages.each { |f| result << puts_hash(f, Digest::SHA1.file(f)) } result end
sha2_hashes()
click to toggle source
# File lib/suppository/release.rb, line 58 def sha2_hashes result = [] result << "SHA256:\n" packages.each { |f| result << puts_hash(f, Digest::SHA256.file(f)) } result end
sha5_hashes()
click to toggle source
# File lib/suppository/release.rb, line 65 def sha5_hashes result = [] result << "SHA512:\n" packages.each { |f| result << puts_hash(f, Digest::SHA512.file(f)) } result end
sign()
click to toggle source
# File lib/suppository/release.rb, line 72 def sign gpg_file = "#{@release_file}.gpg" FileUtils.rm_rf(gpg_file) CommandRunner.new('gpg', "-abs -o #{gpg_file} #{@release_file}").run end
write_file()
click to toggle source
# File lib/suppository/release.rb, line 23 def write_file open(@release_file, 'w') { |f| f.puts content.join('') } end