Module: Purple::PackageActions
- Defined in:
- lib/purple/pkg_actions.rb
Instance Attribute Summary collapse
-
#cabinet ⇒ Object
Returns the value of attribute cabinet.
Class Method Summary collapse
Instance Method Summary collapse
- #default_build ⇒ Object
- #default_config ⇒ Object
- #default_prepare ⇒ Object
- #default_stage ⇒ Object
- #srcdir ⇒ Object
- #stage_root ⇒ Object
Instance Attribute Details
#cabinet ⇒ Object
Returns the value of attribute cabinet.
5 6 7 |
# File 'lib/purple/pkg_actions.rb', line 5 def cabinet @cabinet end |
Class Method Details
.package_method(name) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/purple/pkg_actions.rb', line 7 def self.package_method name prg = <<-EOS def #{name} if defined? @method_#{name}_package and @method_#{name}_package return @method_#{name}_package.call(self) else m = self.method "default_#{name}" return(m.call) if m end end def #{name}= prc @method_#{name}_package = prc end EOS #puts prg module_eval prg end |
Instance Method Details
#default_build ⇒ Object
67 68 69 |
# File 'lib/purple/pkg_actions.rb', line 67 def default_build throw :stop unless cabinet.sys 'build', "make -C '#{srcdir}'" end |
#default_config ⇒ Object
63 64 65 |
# File 'lib/purple/pkg_actions.rb', line 63 def default_config throw :stop unless cabinet.sys 'config', "cd #{srcdir}; ./configure --prefix=/usr" end |
#default_prepare ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/purple/pkg_actions.rb', line 48 def default_prepare puts "DEBUG PackageActions#default_prepare" files.each do |f| unpack = case f when /gz$/; '-z' when /bz2$/; '-j' else '' end if not cabinet.sys 'prepare', "tar xv #{unpack} -C '#{cabinet.srcdir}' -f #{cabinet.filesdir}/#{f}" throw :stop end end end |
#default_stage ⇒ Object
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/purple/pkg_actions.rb', line 71 def default_stage system "rm -fr '#{stage_root}/*'" require 'purple/makefile' puts "DEBUG PackageActions#default_stage: srcdir=#{srcdir}" mkm = MakefileMaven.new srcdir if mkm.uses_prefix? if mkm.uses_destdir? make_args = "DESTDIR='#{stage_root}'" else make_args = "prefix='#{stage_root}/usr'" end else if mkm.uses_destdir? make_args = "DESTDIR='#{stage_root}'" else raise 'Unable to find a way to stage! Package neither defines prefix or DESTDIR' end end throw :stop if not cabinet.sys 'stage', "make -C '#{srcdir}' #{make_args} install" end |
#srcdir ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/purple/pkg_actions.rb', line 25 def srcdir return @srcdir if defined? @srcdir dirs = Dir.new(cabinet.srcdir).reject { |s| s =~ /^\.{1,2}$/ } if 1 == dirs.size @srcdir = "#{cabinet.srcdir}/#{dirs[0]}" else @srcdir = Dir.new(cabinet.srcdir).find { |s| s =~ Regexp.new('^' + Regexp.escape(name)) } end throw :stop, "Unable to determine source directory for package #{name}" if not @srcdir puts "Choosing #{@srcdir} as source code folder" @srcdir end |
#stage_root ⇒ Object
38 39 40 |
# File 'lib/purple/pkg_actions.rb', line 38 def stage_root File.join cabinet.stage_root, long_name end |