aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
Diffstat (limited to 'Library')
-rwxr-xr-xLibrary/Contributions/cmd/brew-pull.rb9
1 files changed, 7 insertions, 2 deletions
diff --git a/Library/Contributions/cmd/brew-pull.rb b/Library/Contributions/cmd/brew-pull.rb
index 0bdcac79a..ee20e7720 100755
--- a/Library/Contributions/cmd/brew-pull.rb
+++ b/Library/Contributions/cmd/brew-pull.rb
@@ -48,7 +48,7 @@ ARGV.named.each do|arg|
revision = `git rev-parse --short HEAD`.strip
ohai 'Applying patch'
- patch_args = ['am']
+ patch_args = []
patch_args << '--signoff' unless ARGV.include? '--clean'
# Normally we don't want whitespace errors, but squashing them can break
# patches so an option is provided to skip this step.
@@ -59,7 +59,12 @@ ARGV.named.each do|arg|
end
patch_args << patchpath
- safe_system 'git', *patch_args
+ begin
+ safe_system 'git', 'am', *patch_args
+ rescue => e
+ system 'git', 'am', '--abort'
+ odie 'Patch failed to apply: aborted.'
+ end
issue = arg.to_i > 0 ? arg.to_i : url_match[4]
if issue and not ARGV.include? '--clean'