mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
Use Homebrew::Style
for brew cask style
.
This commit is contained in:
parent
2b4f3646b7
commit
b4d14c193f
@ -1,6 +1,7 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "json"
|
require "json"
|
||||||
|
require "style"
|
||||||
|
|
||||||
module Cask
|
module Cask
|
||||||
class Cmd
|
class Cmd
|
||||||
@ -19,48 +20,14 @@ module Cask
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.rubocop(*paths, auto_correct: false, debug: false, json: false)
|
|
||||||
Homebrew.install_bundler_gems!
|
|
||||||
|
|
||||||
cache_env = { "XDG_CACHE_HOME" => "#{HOMEBREW_CACHE}/style" }
|
|
||||||
hide_warnings = debug ? [] : [ENV["HOMEBREW_RUBY_PATH"], "-S"]
|
|
||||||
|
|
||||||
args = [
|
|
||||||
"--force-exclusion",
|
|
||||||
"--config", HOMEBREW_LIBRARY/".rubocop.yml"
|
|
||||||
]
|
|
||||||
|
|
||||||
if json
|
|
||||||
args << "--format" << "json"
|
|
||||||
else
|
|
||||||
if auto_correct
|
|
||||||
args << "--auto-correct"
|
|
||||||
else
|
|
||||||
args << "--debug" if debug
|
|
||||||
args << "--parallel"
|
|
||||||
end
|
|
||||||
|
|
||||||
args << "--format" << "simple"
|
|
||||||
args << "--color" if Tty.color?
|
|
||||||
end
|
|
||||||
|
|
||||||
executable, *args = [*hide_warnings, "rubocop", *args, "--", *paths]
|
|
||||||
|
|
||||||
result = Dir.mktmpdir do |tmpdir|
|
|
||||||
system_command executable, args: args, chdir: tmpdir, env: cache_env,
|
|
||||||
print_stdout: !json, print_stderr: !json
|
|
||||||
end
|
|
||||||
|
|
||||||
result.assert_success! unless (0..1).cover?(result.exit_status)
|
|
||||||
|
|
||||||
return JSON.parse(result.stdout) if json
|
|
||||||
|
|
||||||
result
|
|
||||||
end
|
|
||||||
|
|
||||||
def run
|
def run
|
||||||
result = self.class.rubocop(*cask_paths, auto_correct: args.fix?, debug: args.debug?)
|
success = Homebrew::Style.check_style_and_print(
|
||||||
raise CaskError, "Style check failed." unless result.status.success?
|
cask_paths,
|
||||||
|
fix: args.fix?,
|
||||||
|
debug: args.debug?,
|
||||||
|
verbose: args.verbose?,
|
||||||
|
)
|
||||||
|
raise CaskError, "Style check failed." unless success
|
||||||
end
|
end
|
||||||
|
|
||||||
def cask_paths
|
def cask_paths
|
||||||
|
@ -119,6 +119,7 @@ module Homebrew
|
|||||||
when :print
|
when :print
|
||||||
args << "--debug" if debug
|
args << "--debug" if debug
|
||||||
args << "--format" << "simple" if files.present?
|
args << "--format" << "simple" if files.present?
|
||||||
|
args << "--color" if Tty.color?
|
||||||
|
|
||||||
system cache_env, "rubocop", *args
|
system cache_env, "rubocop", *args
|
||||||
$CHILD_STATUS.success?
|
$CHILD_STATUS.success?
|
||||||
|
@ -10,34 +10,18 @@ describe Cask::Cmd::Style, :cask do
|
|||||||
|
|
||||||
it_behaves_like "a command that handles invalid options"
|
it_behaves_like "a command that handles invalid options"
|
||||||
|
|
||||||
describe ".rubocop" do
|
describe "::run" do
|
||||||
subject { described_class.rubocop(cask_path) }
|
subject { described_class.rubocop(cask_path) }
|
||||||
|
|
||||||
around do |example|
|
|
||||||
FileUtils.ln_s HOMEBREW_LIBRARY_PATH, HOMEBREW_LIBRARY/"Homebrew"
|
|
||||||
FileUtils.ln_s HOMEBREW_LIBRARY_PATH.parent/".rubocop.yml", HOMEBREW_LIBRARY/".rubocop.yml"
|
|
||||||
FileUtils.ln_s HOMEBREW_LIBRARY_PATH.parent/".rubocop_cask.yml", HOMEBREW_LIBRARY/".rubocop_cask.yml"
|
|
||||||
FileUtils.ln_s HOMEBREW_LIBRARY_PATH.parent/".rubocop_rspec.yml", HOMEBREW_LIBRARY/".rubocop_rspec.yml"
|
|
||||||
|
|
||||||
example.run
|
|
||||||
ensure
|
|
||||||
FileUtils.rm_f HOMEBREW_LIBRARY/"Homebrew"
|
|
||||||
FileUtils.rm_f HOMEBREW_LIBRARY/".rubocop.yml"
|
|
||||||
FileUtils.rm_f HOMEBREW_LIBRARY/".rubocop_cask.yml"
|
|
||||||
FileUtils.rm_f HOMEBREW_LIBRARY/".rubocop_rspec.yml"
|
|
||||||
end
|
|
||||||
|
|
||||||
before do
|
|
||||||
allow(Homebrew).to receive(:install_bundler_gems!)
|
|
||||||
end
|
|
||||||
|
|
||||||
context "with a valid Cask" do
|
context "with a valid Cask" do
|
||||||
let(:cask_path) do
|
let(:cask_path) do
|
||||||
Pathname.new("#{HOMEBREW_LIBRARY}/Homebrew/test/support/fixtures/cask/Casks/version-latest.rb")
|
Pathname.new("#{HOMEBREW_LIBRARY_PATH}/test/support/fixtures/cask/Casks/version-latest.rb")
|
||||||
end
|
end
|
||||||
|
|
||||||
it "returns true" do
|
it "is successful" do
|
||||||
expect(subject.success?).to be true
|
expect {
|
||||||
|
described_class.run(cask_path)
|
||||||
|
}.not_to raise_error
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user