aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/exceptions.rb
diff options
context:
space:
mode:
authorilovezfs2016-01-25 08:21:57 -0800
committerMike McQuaid2016-02-01 18:37:36 +0000
commitcc3d041c263ef88d2d301d06eb17031cfabfc971 (patch)
tree7552b6adabf32d8f43947efc0c1c84d846a4dd0c /Library/Homebrew/exceptions.rb
parent604323e641ccd0b125716f4a337b1f9384236716 (diff)
downloadbrew-cc3d041c263ef88d2d301d06eb17031cfabfc971.tar.bz2
DSL method "apply" to specify patch files
The "apply" DSL method can be called from patch-do blocks to specify the paths within an archive of the desired patch files, which will be applied in the order in which they were supplied to the "apply" calls. If "apply" isn't used, raise an error whenever the extracted directory doesn't contain exactly one file. The "apply" method can be called zero or more times within a patch-do block with the following syntaxes supported: apply "single_apply" apply "multiple_apply_1", "multiple_apply_2" apply [array_of_apply] If apply must be used, a single call using the second syntax above is usually best practice. Each apply leaf should be the relative path to a specific patch file in the extracted directory. For example, if extracting this-v123-patches.tar.gz gives you this-123 this-123/.DS_Store this-123/LICENSE.txt this-123/patches this-123/patches/A.diff this-123/patches/B.diff this-123/patches/C.diff this-123/README.txt and you want to apply only B.diff and C.diff, then you need to use "patches/B.diff" and "patches/C.diff" for the lowest-level apply leaves. The code was provided by Xu Cheng. Any mistakes are mine.
Diffstat (limited to 'Library/Homebrew/exceptions.rb')
-rw-r--r--Library/Homebrew/exceptions.rb3
1 files changed, 3 insertions, 0 deletions
diff --git a/Library/Homebrew/exceptions.rb b/Library/Homebrew/exceptions.rb
index 6f2fb849c..36fd927db 100644
--- a/Library/Homebrew/exceptions.rb
+++ b/Library/Homebrew/exceptions.rb
@@ -441,6 +441,9 @@ class DuplicateResourceError < ArgumentError
end
end
+# raised when a single patch file is not found and apply hasn't been specified
+class MissingApplyError < RuntimeError ; end
+
class BottleVersionMismatchError < RuntimeError
def initialize(bottle_file, bottle_version, formula, formula_version)
super <<-EOS.undent