diff options
| author | ilovezfs | 2016-01-25 08:21:57 -0800 | 
|---|---|---|
| committer | Mike McQuaid | 2016-02-01 18:37:36 +0000 | 
| commit | cc3d041c263ef88d2d301d06eb17031cfabfc971 (patch) | |
| tree | 7552b6adabf32d8f43947efc0c1c84d846a4dd0c /Library/Homebrew/exceptions.rb | |
| parent | 604323e641ccd0b125716f4a337b1f9384236716 (diff) | |
| download | brew-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.rb | 3 | 
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 | 
