52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
# File 'lib/make-rubygem-debs.rb', line 52
def self.make_rubygem_debs topdir
depends = []
gems = Dir.chdir topdir do
if not File.exists? "Gemfile.lock"
raise RuntimeError, "There is no Gemfile.lock within #{topdir}."
end
`bundle list`.split("\n")[1..-1].map do |line|
name, version = line.split[1..2]
[name, version[1..-2]]
end
end
debdir = "#{topdir}/rubygem-debs"
`mkdir -p "#{debdir}"`
Dir.chdir debdir do
gems.each do |name, version|
puts "Trying to make a .deb for #{name} #{version} ..."
`fpm -s gem -t deb -v #{version} #{name}`
deb_name = "rubygem-" + name.gsub("_", "-")
deb_file = "#{deb_name}_#{version}"
deb = Dir.entries('.').select {|file| file.match deb_file}
if not deb.empty?
puts "Successfully created #{deb[0]}."
else
raise RuntimeError, "Failed to a .deb for #{name} #{version}."
end
depends << "#{deb_name} (>= #{version})"
end
control = File.open 'control', 'w'
control.write "Depends: #{depends.join ", "}\n"
control.close
end
end
|