diff options
| -rw-r--r-- | Library/Homebrew/cask/lib/hbc/cli/style.rb | 11 | ||||
| -rw-r--r-- | Library/Homebrew/exceptions.rb | 9 | ||||
| -rw-r--r-- | Library/Homebrew/formula_installer.rb | 4 | ||||
| -rw-r--r-- | Library/Homebrew/requirements/xcode_requirement.rb | 7 | ||||
| -rw-r--r-- | Library/Homebrew/test/cask/cli/style_spec.rb | 7 |
5 files changed, 28 insertions, 10 deletions
diff --git a/Library/Homebrew/cask/lib/hbc/cli/style.rb b/Library/Homebrew/cask/lib/hbc/cli/style.rb index 86fc98eaa..261bed50b 100644 --- a/Library/Homebrew/cask/lib/hbc/cli/style.rb +++ b/Library/Homebrew/cask/lib/hbc/cli/style.rb @@ -10,9 +10,9 @@ module Hbc def run install_rubocop cache_env = { "XDG_CACHE_HOME" => "#{HOMEBREW_CACHE}/style" } - system(cache_env, "rubocop", *rubocop_args, "--", *cask_paths) + hide_warnings = debug? ? [] : [ENV["HOMEBREW_RUBY_PATH"], "-W0", "-S"] + system(cache_env, *hide_warnings, "rubocop", *rubocop_args, "--", *cask_paths) raise CaskError, "style check failed" unless $CHILD_STATUS.success? - true end def install_rubocop @@ -36,18 +36,21 @@ module Hbc end def rubocop_args - fix? ? autocorrect_args : default_args + fix? ? autocorrect_args : normal_args end def default_args [ "--require", "rubocop-cask", "--force-default-config", - "--force-exclusion", "--format", "simple" ] end + def normal_args + default_args + ["--parallel"] + end + def autocorrect_args default_args + ["--auto-correct"] end diff --git a/Library/Homebrew/exceptions.rb b/Library/Homebrew/exceptions.rb index 7705f9d49..42c62338a 100644 --- a/Library/Homebrew/exceptions.rb +++ b/Library/Homebrew/exceptions.rb @@ -458,7 +458,7 @@ end # if the user passes any flags/environment that would case a bottle-only # installation on a system without build tools to fail class BuildFlagsError < RuntimeError - def initialize(flags) + def initialize(flags, bottled: true) if flags.length > 1 flag_text = "flags" require_text = "require" @@ -467,13 +467,18 @@ class BuildFlagsError < RuntimeError require_text = "requires" end - super <<~EOS + message = <<~EOS.chomp! The following #{flag_text}: #{flags.join(", ")} #{require_text} building tools, but none are installed. #{DevelopmentTools.installation_instructions} + EOS + + message << <<~EOS.chomp! if bottled Alternatively, remove the #{flag_text} to attempt bottle installation. EOS + + super message end end diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb index 2105b9d71..a89da9ae9 100644 --- a/Library/Homebrew/formula_installer.rb +++ b/Library/Homebrew/formula_installer.rb @@ -70,8 +70,10 @@ class FormulaInstaller # can proceed. Only invoked when the user has no developer tools. def self.prevent_build_flags build_flags = ARGV.collect_build_flags + return if build_flags.empty? - raise BuildFlagsError, build_flags unless build_flags.empty? + all_bottled = ARGV.formulae.all?(&:bottled?) + raise BuildFlagsError.new(build_flags, bottled: all_bottled) end def build_bottle? diff --git a/Library/Homebrew/requirements/xcode_requirement.rb b/Library/Homebrew/requirements/xcode_requirement.rb index a5f078c62..9396b0df7 100644 --- a/Library/Homebrew/requirements/xcode_requirement.rb +++ b/Library/Homebrew/requirements/xcode_requirement.rb @@ -22,7 +22,12 @@ class XcodeRequirement < Requirement A full installation of Xcode.app#{version} is required to compile this software. Installing just the Command Line Tools is not sufficient. EOS - if MacOS.version >= :lion + if Version.new(MacOS::Xcode.latest_version) < Version.new(@version) + message + <<~EOS + Xcode#{version} cannot be installed on macOS #{MacOS.version}. + You must upgrade your version of macOS. + EOS + elsif MacOS.version >= :lion message + <<~EOS Xcode can be installed from the App Store. EOS diff --git a/Library/Homebrew/test/cask/cli/style_spec.rb b/Library/Homebrew/test/cask/cli/style_spec.rb index 12cd348a0..850f04f8d 100644 --- a/Library/Homebrew/test/cask/cli/style_spec.rb +++ b/Library/Homebrew/test/cask/cli/style_spec.rb @@ -22,7 +22,10 @@ describe Hbc::CLI::Style, :cask do context "when rubocop succeeds" do let(:success) { true } - it { is_expected.to be_truthy } + + it "does not raise an error" do + expect { subject }.not_to raise_error + end end context "when rubocop fails" do @@ -132,7 +135,7 @@ describe Hbc::CLI::Style, :cask do describe "#default_args" do subject { cli.default_args } - it { is_expected.to include("--require", "rubocop-cask", "--format", "simple", "--force-exclusion") } + it { is_expected.to include("--require", "rubocop-cask", "--format", "simple") } end describe "#autocorrect_args" do |
