Class: Gaffer::Deb
- Inherits:
-
Object
- Object
- Gaffer::Deb
- Defined in:
- lib/gaffer/deb.rb
Instance Method Summary collapse
- #compile ⇒ Object
- #control ⇒ Object
- #description ⇒ Object
- #filebase ⇒ Object
-
#initialize(base, arch, package, depends) ⇒ Deb
constructor
A new instance of Deb.
- #origin_url ⇒ Object
Constructor Details
#initialize(base, arch, package, depends) ⇒ Deb
Returns a new instance of Deb.
3 4 5 6 7 8 9 |
# File 'lib/gaffer/deb.rb', line 3 def initialize(base, arch, package, depends) @base = base @arch = arch @package = package @depends = depends @dev = !!(@package =~ /-dev$/) end |
Instance Method Details
#compile ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/gaffer/deb.rb', line 11 def compile puts self.inspect Dir.mktmpdir do |dir| install_dir = "#{dir}/#{@base.prefix}" Git.clone(@base.dir, install_dir) system "mkdir #{dir}/DEBIAN" puts control File.open("#{dir}/DEBIAN/control", "w") do |f| f.write(control) end if @dev system "find #{install_dir} | grep -v [.]git | grep -v #{install_dir}$ | xargs rm -rf" else system "rm -rf #{install_dir}/.git" [ "preinst", "postinst", "prerm", "postrm" ].each do |script| system "cp #{@base.dir}/#{script} #{dir}/DEBIAN/" if File.exists?("#{@base.dir}/#{script}") end if File.exists?("#{@base.dir}/init.conf") puts "INSTALLING init.conf" system "mkdir -p #{dir}/etc/init" system "cp #{@base.dir}/init.conf #{dir}/etc/init/#{@base.project}.conf" end end system "dpkg-deb -b #{dir} ./#{filebase}.deb" end end |
#control ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/gaffer/deb.rb', line 50 def control <<CONTROL Source: #{@package} Section: unknown Priority: extra Maintainer: #{@base.maintainer} Version: #{@base.build} Homepage: #{origin_url} Package: #{@package} Architecture: #{@arch} Depends: #{@depends} Description: #{description} #{@readme} CONTROL end |
#description ⇒ Object
42 43 44 |
# File 'lib/gaffer/deb.rb', line 42 def description "Gaffer package #{@package} #{@base.build}" end |
#filebase ⇒ Object
46 47 48 |
# File 'lib/gaffer/deb.rb', line 46 def filebase "#{@package}_#{@base.build}_#{@arch}" end |
#origin_url ⇒ Object
38 39 40 |
# File 'lib/gaffer/deb.rb', line 38 def origin_url @base.git.remotes.select { |r| r.name == "origin" }.map { |r| r.url }.first end |