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_setup ⇒ 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 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/purple/pkg_actions.rb', line 7 def self.package_method name prg = " def \#{name}\n if defined? @method_\#{name}_package and @method_\#{name}_package\n return @method_\#{name}_package.call(self)\n else\n m = self.method \"default_\#{name}\"\n return(m.call) if m\n end\n end\n def \#{name}= prc\n case prc\n when Proc\n @method_\#{name}_package = prc\n when String\n @method_\#{name}_package = proc { |pkg|\n prc = eval(\"%(\\\#{prc})\") if prc =~ /\\\\\\#\\\\\\{/\n puts \"DEBUG: prc==\\\#{prc}\" if $DEBUG\n pkg.cabinet.sys \#{name.to_s.inspect}, prc\n }\n when Array\n self.\#{name} = prc.join '; '\n end\n end\n EOS\n puts \"DEBUG PackageActions##package_method: prg=\\n\#{prg}\" if $DEBUG\n module_eval prg\nend\n" |
Instance Method Details
#default_build ⇒ Object
89 90 91 |
# File 'lib/purple/pkg_actions.rb', line 89 def default_build throw :stop unless cabinet.sys 'build', "make -C '#{srcdir}'" end |
#default_config ⇒ Object
85 86 87 |
# File 'lib/purple/pkg_actions.rb', line 85 def default_config throw :stop unless cabinet.sys 'config', "cd #{srcdir}; ./configure --prefix=/usr" end |
#default_prepare ⇒ Object
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/purple/pkg_actions.rb', line 64 def default_prepare puts "DEBUG PackageActions#default_prepare" if $DEBUG files.each do |f| unpack = case f when /(gz|bz2)$/ compress_arg = case $1 when 'gz'; '-z' when 'bz2'; '-j' else '' end proc { |filename| "tar xv #{compress_arg} -C '#{cabinet.srcdir}' -f #{cabinet.filesdir}/#{filename}" } when /zip$/ proc { |filename| "cd '#{cabinet.srcdir}'; unzip -o '#{cabinet.filesdir}/#{filename}'" } else throw :stop end throw :stop unless cabinet.sys 'prepare', unpack.call(f) end end |
#default_setup ⇒ Object
61 62 |
# File 'lib/purple/pkg_actions.rb', line 61 def default_setup end |
#default_stage ⇒ Object
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
# File 'lib/purple/pkg_actions.rb', line 93 def default_stage system "rm -fr '#{stage_root}/*'" require 'purple/makefile' puts "DEBUG PackageActions#default_stage: srcdir=#{srcdir}" if $DEBUG 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
36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/purple/pkg_actions.rb', line 36 def srcdir return @srcdir if defined? @srcdir dirs = Dir.new(cabinet.srcdir).reject { |s| s =~ /^\.{1,2}$/ } if 1 == dirs.size s = dirs[0] else s = Dir.new(cabinet.srcdir).find { |s| s =~ Regexp.new('^' + Regexp.escape(name)) } end @srcdir = File.join(cabinet.srcdir, s) 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
50 51 52 |
# File 'lib/purple/pkg_actions.rb', line 50 def stage_root File.join cabinet.stage_root, long_name end |