Skip to content

Commit

Permalink
Allow user to specify patch level
Browse files Browse the repository at this point in the history
The default is p0, but if you return a Hash instead of an array from patches you can specify patch level. See the comment documentation.

Closes Homebrew#10
  • Loading branch information
mxcl committed Aug 11, 2009
1 parent ecf64c3 commit 637b378
Showing 1 changed file with 30 additions and 3 deletions.
33 changes: 30 additions & 3 deletions Library/Homebrew/formula.rb
Expand Up @@ -30,6 +30,7 @@ def initialize name
end
end


# the base class variety of formula, you don't get a prefix, so it's not
# useful. See the derived classes for fun and games.
class AbstractFormula
Expand Down Expand Up @@ -72,6 +73,13 @@ def include; prefix+'include' end
# tell the user about any caveats regarding this package
def caveats; nil end
# patches are automatically applied after extracting the tarball
# return an array of strings, or if you need a patch level other than -p0
# return a Hash eg.
# {
# :p0 => ['http://foo.com/patch1', 'http://foo.com/patch2'],
# :p1 => 'http://bar.com/patch2',
# :p2 => ['http://moo.com/patch5', 'http://moo.com/patch6']
# }
def patches; [] end
# reimplement and specify dependencies
def deps; end
Expand Down Expand Up @@ -179,14 +187,33 @@ def verify_download_integrity fn
end

def patch
unless patches.empty?
ohai "Patching"
return if patches.empty?
ohai "Patching"
if patches.kind_of? Hash
patch_args=[]
curl_args=[]
n=0
patches.each do |arg, urls|
urls.each do |url|
dst='%03d-homebrew.patch' % n+=1
curl_args<<url<<'-o'<<dst
patch_args<<["-#{arg}",'-i',dst]
end
end
# downloading all at once is much more efficient, espeically for FTP
curl *curl_args
patch_args.each do |args|
# -f means it doesn't prompt the user if there are errors, if just
# exits with non-zero status
safe_system 'patch', '-f', *args
end
else
ff=(1..patches.length).collect {|n| '%03d-homebrew.patch'%n}
curl *patches+ff.collect {|f|"-o#{f}"}
ff.each {|f| safe_system 'patch', '-p0', '-i', f}
end
end
class <<self
attr_reader :url, :version, :md5, :url, :homepage, :sha1
end
Expand Down

0 comments on commit 637b378

Please sign in to comment.