aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cmd/style.rb
diff options
context:
space:
mode:
authorMike McQuaid2017-03-08 09:26:07 +0000
committerMike McQuaid2017-03-08 09:26:07 +0000
commitfe59fde8f8f76b324c86175796c6ea887f465e79 (patch)
treeebe7293946a7af4a5bc55069a52006b9317b806e /Library/Homebrew/cmd/style.rb
parent9105acab6bc6a04d01c49a32ec27f8ab16fd40b7 (diff)
downloadbrew-fe59fde8f8f76b324c86175796c6ea887f465e79.tar.bz2
style: improve Rubocop error handling.
- Check if the JSON is definitely invalid (< 2 characters) - Output the arguments that were passed to Rubocop
Diffstat (limited to 'Library/Homebrew/cmd/style.rb')
-rw-r--r--Library/Homebrew/cmd/style.rb10
1 files changed, 7 insertions, 3 deletions
diff --git a/Library/Homebrew/cmd/style.rb b/Library/Homebrew/cmd/style.rb
index 3d12561c1..2a7f37031 100644
--- a/Library/Homebrew/cmd/style.rb
+++ b/Library/Homebrew/cmd/style.rb
@@ -70,10 +70,14 @@ module Homebrew
!$?.success?
when :json
json = Utils.popen_read_text("rubocop", "--format", "json", *args)
- # exit status of 1 just means violations were found; other numbers mean execution errors
+ # exit status of 1 just means violations were found; other numbers mean
+ # execution errors.
# exitstatus can also be nil if RuboCop process crashes, e.g. due to
- # native extension problems
- raise "Error while running RuboCop" if $?.exitstatus.nil? || $?.exitstatus > 1
+ # native extension problems.
+ # JSON needs to be at least 2 characters.
+ if $?.exitstatus.nil? || $?.exitstatus > 1 || json.to_s.length < 2
+ raise "Error running `rubocop --format json #{args.join " "}`"
+ end
RubocopResults.new(JSON.parse(json))
else
raise "Invalid output_type for check_style_impl: #{output_type}"