mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
Move cask audit implications into Audit
.
This commit is contained in:
parent
793ab30bb0
commit
e5b56e485f
@ -14,22 +14,32 @@ module Cask
|
|||||||
class Audit
|
class Audit
|
||||||
extend Predicable
|
extend Predicable
|
||||||
|
|
||||||
attr_reader :cask, :commit_range, :download
|
attr_reader :cask, :download
|
||||||
|
|
||||||
attr_predicate :appcast?, :new_cask?, :strict?, :online?
|
attr_predicate :appcast?, :new_cask?, :strict?, :online?
|
||||||
|
|
||||||
def initialize(cask, appcast: false, download: false, quarantine: nil,
|
def initialize(cask, appcast: nil, download: nil, quarantine: nil,
|
||||||
token_conflicts: false, online: false, strict: false,
|
token_conflicts: nil, online: nil, strict: nil,
|
||||||
new_cask: false, commit_range: nil, command: SystemCommand)
|
new_cask: nil)
|
||||||
|
|
||||||
|
# `new_cask` implies `online` and `strict`
|
||||||
|
online = new_cask if online.nil?
|
||||||
|
strict = new_cask if strict.nil?
|
||||||
|
|
||||||
|
# `online` implies `appcast` and `download`
|
||||||
|
appcast = online if appcast.nil?
|
||||||
|
download = online if download.nil?
|
||||||
|
|
||||||
|
# `strict` implies `token_conflicts`
|
||||||
|
token_conflicts = strict if token_conflicts.nil?
|
||||||
|
|
||||||
@cask = cask
|
@cask = cask
|
||||||
@appcast = appcast
|
@appcast = appcast
|
||||||
@download = Download.new(cask, quarantine: quarantine) if download
|
@download = Download.new(cask, quarantine: quarantine) if download
|
||||||
@online = online
|
@online = online
|
||||||
@strict = strict
|
@strict = strict
|
||||||
@new_cask = new_cask
|
@new_cask = new_cask
|
||||||
@commit_range = commit_range
|
|
||||||
@token_conflicts = token_conflicts
|
@token_conflicts = token_conflicts
|
||||||
@command = command
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def run!
|
def run!
|
||||||
|
@ -9,33 +9,50 @@ module Cask
|
|||||||
class Auditor
|
class Auditor
|
||||||
extend Predicable
|
extend Predicable
|
||||||
|
|
||||||
def self.audit(cask, audit_download: false, audit_appcast: false,
|
def self.audit(
|
||||||
audit_online: false, audit_strict: false,
|
cask,
|
||||||
audit_token_conflicts: false, audit_new_cask: false,
|
audit_download: nil,
|
||||||
quarantine: true, commit_range: nil, language: nil)
|
audit_appcast: nil,
|
||||||
new(cask, audit_download: audit_download,
|
audit_online: nil,
|
||||||
audit_appcast: audit_appcast,
|
audit_new_cask: nil,
|
||||||
audit_online: audit_online,
|
audit_strict: nil,
|
||||||
audit_new_cask: audit_new_cask,
|
audit_token_conflicts: nil,
|
||||||
audit_strict: audit_strict,
|
quarantine: nil,
|
||||||
audit_token_conflicts: audit_token_conflicts,
|
language: nil
|
||||||
quarantine: quarantine, commit_range: commit_range, language: language).audit
|
)
|
||||||
|
new(
|
||||||
|
cask,
|
||||||
|
audit_download: audit_download,
|
||||||
|
audit_appcast: audit_appcast,
|
||||||
|
audit_online: audit_online,
|
||||||
|
audit_new_cask: audit_new_cask,
|
||||||
|
audit_strict: audit_strict,
|
||||||
|
audit_token_conflicts: audit_token_conflicts,
|
||||||
|
quarantine: quarantine,
|
||||||
|
language: language,
|
||||||
|
).audit
|
||||||
end
|
end
|
||||||
|
|
||||||
attr_reader :cask, :commit_range, :language
|
attr_reader :cask, :language
|
||||||
|
|
||||||
def initialize(cask, audit_download: false, audit_appcast: false,
|
def initialize(
|
||||||
audit_online: false, audit_strict: false,
|
cask,
|
||||||
audit_token_conflicts: false, audit_new_cask: false,
|
audit_download: nil,
|
||||||
quarantine: true, commit_range: nil, language: nil)
|
audit_appcast: nil,
|
||||||
|
audit_online: nil,
|
||||||
|
audit_strict: nil,
|
||||||
|
audit_token_conflicts: nil,
|
||||||
|
audit_new_cask: nil,
|
||||||
|
quarantine: nil,
|
||||||
|
language: nil
|
||||||
|
)
|
||||||
@cask = cask
|
@cask = cask
|
||||||
@audit_download = audit_download
|
@audit_download = audit_download
|
||||||
@audit_appcast = audit_appcast
|
@audit_appcast = audit_appcast
|
||||||
@audit_online = audit_online
|
@audit_online = audit_online
|
||||||
@audit_strict = audit_strict
|
|
||||||
@audit_new_cask = audit_new_cask
|
@audit_new_cask = audit_new_cask
|
||||||
|
@audit_strict = audit_strict
|
||||||
@quarantine = quarantine
|
@quarantine = quarantine
|
||||||
@commit_range = commit_range
|
|
||||||
@audit_token_conflicts = audit_token_conflicts
|
@audit_token_conflicts = audit_token_conflicts
|
||||||
@language = language
|
@language = language
|
||||||
end
|
end
|
||||||
@ -76,14 +93,16 @@ module Cask
|
|||||||
end
|
end
|
||||||
|
|
||||||
def audit_cask_instance(cask)
|
def audit_cask_instance(cask)
|
||||||
audit = Audit.new(cask, appcast: audit_appcast?,
|
audit = Audit.new(
|
||||||
online: audit_online?,
|
cask,
|
||||||
strict: audit_strict?,
|
appcast: audit_appcast?,
|
||||||
new_cask: audit_new_cask?,
|
online: audit_online?,
|
||||||
token_conflicts: audit_token_conflicts?,
|
strict: audit_strict?,
|
||||||
download: audit_download?,
|
new_cask: audit_new_cask?,
|
||||||
quarantine: quarantine?,
|
token_conflicts: audit_token_conflicts?,
|
||||||
commit_range: commit_range)
|
download: audit_download?,
|
||||||
|
quarantine: quarantine?,
|
||||||
|
)
|
||||||
audit.run!
|
audit.run!
|
||||||
audit
|
audit
|
||||||
end
|
end
|
||||||
|
@ -38,16 +38,14 @@ module Cask
|
|||||||
require "cask/auditor"
|
require "cask/auditor"
|
||||||
|
|
||||||
Homebrew.auditing = true
|
Homebrew.auditing = true
|
||||||
strict = args.new_cask? || args.strict?
|
|
||||||
online = args.new_cask? || args.online?
|
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
audit_download: online || args.download?,
|
audit_download: args.download?,
|
||||||
audit_appcast: online || args.appcast?,
|
audit_appcast: args.appcast?,
|
||||||
audit_online: online,
|
audit_online: args.online?,
|
||||||
audit_strict: strict,
|
audit_strict: args.strict?,
|
||||||
audit_new_cask: args.new_cask?,
|
audit_new_cask: args.new_cask?,
|
||||||
audit_token_conflicts: strict || args.token_conflicts?,
|
audit_token_conflicts: args.token_conflicts?,
|
||||||
quarantine: args.quarantine?,
|
quarantine: args.quarantine?,
|
||||||
language: args.language,
|
language: args.language,
|
||||||
}.compact
|
}.compact
|
||||||
|
@ -34,11 +34,9 @@ describe Cask::Audit, :cask do
|
|||||||
let(:token_conflicts) { false }
|
let(:token_conflicts) { false }
|
||||||
let(:strict) { false }
|
let(:strict) { false }
|
||||||
let(:new_cask) { false }
|
let(:new_cask) { false }
|
||||||
let(:fake_system_command) { class_double(SystemCommand) }
|
|
||||||
let(:audit) {
|
let(:audit) {
|
||||||
described_class.new(cask, download: download,
|
described_class.new(cask, download: download,
|
||||||
token_conflicts: token_conflicts,
|
token_conflicts: token_conflicts,
|
||||||
command: fake_system_command,
|
|
||||||
strict: strict,
|
strict: strict,
|
||||||
new_cask: new_cask)
|
new_cask: new_cask)
|
||||||
}
|
}
|
||||||
|
@ -57,10 +57,10 @@ describe Cask::Cmd::Audit, :cask do
|
|||||||
described_class.run("casktoken", "--token-conflicts")
|
described_class.run("casktoken", "--token-conflicts")
|
||||||
end
|
end
|
||||||
|
|
||||||
it "passes `audit_strict` and `audit_token_conflicts` if the `--strict` flag is specified" do
|
it "passes `audit_strict` if the `--strict` flag is specified" do
|
||||||
allow(Cask::CaskLoader).to receive(:load).and_return(cask)
|
allow(Cask::CaskLoader).to receive(:load).and_return(cask)
|
||||||
expect(Cask::Auditor).to receive(:audit)
|
expect(Cask::Auditor).to receive(:audit)
|
||||||
.with(cask, audit_strict: true, audit_token_conflicts: true, quarantine: true)
|
.with(cask, audit_strict: true, quarantine: true)
|
||||||
.and_return(result)
|
.and_return(result)
|
||||||
|
|
||||||
described_class.run("casktoken", "--strict")
|
described_class.run("casktoken", "--strict")
|
||||||
@ -69,23 +69,16 @@ describe Cask::Cmd::Audit, :cask do
|
|||||||
it "passes `audit_online` if the `--online` flag is specified" do
|
it "passes `audit_online` if the `--online` flag is specified" do
|
||||||
allow(Cask::CaskLoader).to receive(:load).and_return(cask)
|
allow(Cask::CaskLoader).to receive(:load).and_return(cask)
|
||||||
expect(Cask::Auditor).to receive(:audit)
|
expect(Cask::Auditor).to receive(:audit)
|
||||||
.with(cask, audit_online: true, audit_appcast: true, audit_download: true, quarantine: true)
|
.with(cask, audit_online: true, quarantine: true)
|
||||||
.and_return(result)
|
.and_return(result)
|
||||||
|
|
||||||
described_class.run("casktoken", "--online")
|
described_class.run("casktoken", "--online")
|
||||||
end
|
end
|
||||||
|
|
||||||
it "passes `audit_appcast`, `audit_download`, `audit_new_cask`, `audit_online`, `audit_strict` " \
|
it "passes `audit_new_cask` if the `--new-cask` flag is specified" do
|
||||||
"and `audit_token_conflicts` if the `--new-cask` flag is specified" do
|
|
||||||
allow(Cask::CaskLoader).to receive(:load).and_return(cask)
|
allow(Cask::CaskLoader).to receive(:load).and_return(cask)
|
||||||
expect(Cask::Auditor).to receive(:audit)
|
expect(Cask::Auditor).to receive(:audit)
|
||||||
.with(cask, audit_appcast: true,
|
.with(cask, audit_new_cask: true, quarantine: true)
|
||||||
audit_download: true,
|
|
||||||
audit_new_cask: true,
|
|
||||||
audit_online: true,
|
|
||||||
audit_strict: true,
|
|
||||||
audit_token_conflicts: true,
|
|
||||||
quarantine: true)
|
|
||||||
.and_return(result)
|
.and_return(result)
|
||||||
|
|
||||||
described_class.run("casktoken", "--new-cask")
|
described_class.run("casktoken", "--new-cask")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user