messages: record cask installations.
This is used to record installation times and also to determine whether to display caveats.
This commit is contained in:
parent
278c06f31d
commit
eb16e10902
@ -166,6 +166,7 @@ module Cask
|
|||||||
)
|
)
|
||||||
require "cask/installer"
|
require "cask/installer"
|
||||||
|
|
||||||
|
start_time = Time.now
|
||||||
odebug "Started upgrade process for Cask #{old_cask}"
|
odebug "Started upgrade process for Cask #{old_cask}"
|
||||||
old_config = old_cask.config
|
old_config = old_cask.config
|
||||||
|
|
||||||
@ -228,6 +229,9 @@ module Cask
|
|||||||
old_cask_installer.revert_upgrade if started_upgrade
|
old_cask_installer.revert_upgrade if started_upgrade
|
||||||
raise e
|
raise e
|
||||||
end
|
end
|
||||||
|
|
||||||
|
end_time = Time.now
|
||||||
|
Homebrew.messages.package_installed(new_cask.token, end_time - start_time)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -88,6 +88,7 @@ module Cask
|
|||||||
end
|
end
|
||||||
|
|
||||||
def install
|
def install
|
||||||
|
start_time = Time.now
|
||||||
odebug "Cask::Installer#install"
|
odebug "Cask::Installer#install"
|
||||||
|
|
||||||
old_config = @cask.config
|
old_config = @cask.config
|
||||||
@ -115,6 +116,8 @@ module Cask
|
|||||||
purge_backed_up_versioned_files
|
purge_backed_up_versioned_files
|
||||||
|
|
||||||
puts summary
|
puts summary
|
||||||
|
end_time = Time.now
|
||||||
|
Homebrew.messages.package_installed(@cask.token, end_time - start_time)
|
||||||
rescue
|
rescue
|
||||||
restore_backup
|
restore_backup
|
||||||
raise
|
raise
|
||||||
|
|||||||
@ -95,7 +95,7 @@ module Homebrew
|
|||||||
}],
|
}],
|
||||||
[:switch, "--display-times", {
|
[:switch, "--display-times", {
|
||||||
env: :display_install_times,
|
env: :display_install_times,
|
||||||
description: "Print install times for each formula at the end of the run.",
|
description: "Print install times for each package at the end of the run.",
|
||||||
}],
|
}],
|
||||||
[:switch, "-i", "--interactive", {
|
[:switch, "-i", "--interactive", {
|
||||||
description: "Download and patch <formula>, then open a shell. This allows the user to " \
|
description: "Download and patch <formula>, then open a shell. This allows the user to " \
|
||||||
|
|||||||
@ -67,7 +67,7 @@ module Homebrew
|
|||||||
}],
|
}],
|
||||||
[:switch, "--display-times", {
|
[:switch, "--display-times", {
|
||||||
env: :display_install_times,
|
env: :display_install_times,
|
||||||
description: "Print install times for each formula at the end of the run.",
|
description: "Print install times for each package at the end of the run.",
|
||||||
}],
|
}],
|
||||||
].each do |options|
|
].each do |options|
|
||||||
send(*options)
|
send(*options)
|
||||||
@ -104,12 +104,10 @@ module Homebrew
|
|||||||
only_upgrade_formulae = formulae.present? && casks.blank?
|
only_upgrade_formulae = formulae.present? && casks.blank?
|
||||||
only_upgrade_casks = casks.present? && formulae.blank?
|
only_upgrade_casks = casks.present? && formulae.blank?
|
||||||
|
|
||||||
display_messages = !only_upgrade_casks && upgrade_outdated_formulae(formulae, args: args)
|
upgrade_outdated_formulae(formulae, args: args) unless only_upgrade_casks
|
||||||
force_caveats = !only_upgrade_formulae && upgrade_outdated_casks(casks, args: args)
|
upgrade_outdated_casks(casks, args: args) unless only_upgrade_formulae
|
||||||
|
|
||||||
return unless display_messages
|
Homebrew.messages.display_messages(display_times: args.display_times?)
|
||||||
|
|
||||||
Homebrew.messages.display_messages(force_caveats: force_caveats, display_times: args.display_times?)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
sig { params(formulae: T::Array[Formula], args: CLI::Args).returns(T::Boolean) }
|
sig { params(formulae: T::Array[Formula], args: CLI::Args).returns(T::Boolean) }
|
||||||
|
|||||||
@ -441,7 +441,7 @@ class FormulaInstaller
|
|||||||
|
|
||||||
opoo "Nothing was installed to #{formula.prefix}" unless formula.latest_version_installed?
|
opoo "Nothing was installed to #{formula.prefix}" unless formula.latest_version_installed?
|
||||||
end_time = Time.now
|
end_time = Time.now
|
||||||
Homebrew.messages.formula_installed(formula, end_time - start_time)
|
Homebrew.messages.package_installed(formula.name, end_time - start_time)
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_conflicts
|
def check_conflicts
|
||||||
|
|||||||
@ -6,12 +6,12 @@
|
|||||||
class Messages
|
class Messages
|
||||||
extend T::Sig
|
extend T::Sig
|
||||||
|
|
||||||
attr_reader :caveats, :formula_count, :install_times
|
attr_reader :caveats, :package_count, :install_times
|
||||||
|
|
||||||
sig { void }
|
sig { void }
|
||||||
def initialize
|
def initialize
|
||||||
@caveats = []
|
@caveats = []
|
||||||
@formula_count = 0
|
@package_count = 0
|
||||||
@install_times = []
|
@install_times = []
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -19,9 +19,9 @@ class Messages
|
|||||||
@caveats.push(package: package, caveats: caveats)
|
@caveats.push(package: package, caveats: caveats)
|
||||||
end
|
end
|
||||||
|
|
||||||
def formula_installed(f, elapsed_time)
|
def package_installed(package, elapsed_time)
|
||||||
@formula_count += 1
|
@package_count += 1
|
||||||
@install_times.push(formula: f.name, time: elapsed_time)
|
@install_times.push(package: package, time: elapsed_time)
|
||||||
end
|
end
|
||||||
|
|
||||||
def display_messages(force_caveats: false, display_times: false)
|
def display_messages(force_caveats: false, display_times: false)
|
||||||
@ -30,8 +30,8 @@ class Messages
|
|||||||
end
|
end
|
||||||
|
|
||||||
def display_caveats(force: false)
|
def display_caveats(force: false)
|
||||||
return if @formula_count.zero?
|
return if @package_count.zero?
|
||||||
return if @formula_count == 1 && !force
|
return if @package_count == 1 && !force
|
||||||
return if @caveats.empty?
|
return if @caveats.empty?
|
||||||
|
|
||||||
oh1 "Caveats"
|
oh1 "Caveats"
|
||||||
@ -45,7 +45,7 @@ class Messages
|
|||||||
|
|
||||||
oh1 "Installation times"
|
oh1 "Installation times"
|
||||||
install_times.each do |t|
|
install_times.each do |t|
|
||||||
puts format("%<formula>-20s %<time>10.3f s", t)
|
puts format("%<package>-20s %<time>10.3f s", t)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -17,25 +17,25 @@ describe Messages do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "#formula_installed" do
|
describe "#package_installed" do
|
||||||
it "increases the formula count" do
|
it "increases the package count" do
|
||||||
expect {
|
expect {
|
||||||
messages.formula_installed(test_formula, elapsed_time)
|
messages.package_installed(test_formula, elapsed_time)
|
||||||
}.to change(messages, :formula_count).by(1)
|
}.to change(messages, :package_count).by(1)
|
||||||
end
|
end
|
||||||
|
|
||||||
it "adds to install_times" do
|
it "adds to install_times" do
|
||||||
expect {
|
expect {
|
||||||
messages.formula_installed(test_formula, elapsed_time)
|
messages.package_installed(test_formula, elapsed_time)
|
||||||
}.to change { messages.install_times.count }.by(1)
|
}.to change { messages.install_times.count }.by(1)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "#display_messages" do
|
describe "#display_messages" do
|
||||||
context "when formula_count is less than two" do
|
context "when package_count is less than two" do
|
||||||
before do
|
before do
|
||||||
messages.record_caveats(test_formula, "Zsh completions were installed")
|
messages.record_caveats(test_formula, "Zsh completions were installed")
|
||||||
messages.formula_installed(test_formula, elapsed_time)
|
messages.package_installed(test_formula, elapsed_time)
|
||||||
end
|
end
|
||||||
|
|
||||||
it "doesn't print caveat details" do
|
it "doesn't print caveat details" do
|
||||||
@ -45,7 +45,7 @@ describe Messages do
|
|||||||
|
|
||||||
context "when caveats is empty" do
|
context "when caveats is empty" do
|
||||||
before do
|
before do
|
||||||
messages.formula_installed(test_formula, elapsed_time)
|
messages.package_installed(test_formula, elapsed_time)
|
||||||
end
|
end
|
||||||
|
|
||||||
it "doesn't print caveat details" do
|
it "doesn't print caveat details" do
|
||||||
@ -53,13 +53,13 @@ describe Messages do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "when formula_count is greater than one and caveats are present" do
|
context "when package_count is greater than one and caveats are present" do
|
||||||
let(:test_formula2) { formula("bar") { url("https://brew.sh/bar-0.1.tgz") } }
|
let(:test_formula2) { formula("bar") { url("https://brew.sh/bar-0.1.tgz") } }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
messages.record_caveats(test_formula, "Zsh completions were installed")
|
messages.record_caveats(test_formula, "Zsh completions were installed")
|
||||||
messages.formula_installed(test_formula, elapsed_time)
|
messages.package_installed(test_formula, elapsed_time)
|
||||||
messages.formula_installed(test_formula2, elapsed_time)
|
messages.package_installed(test_formula2, elapsed_time)
|
||||||
end
|
end
|
||||||
|
|
||||||
it "prints caveat details" do
|
it "prints caveat details" do
|
||||||
@ -82,7 +82,7 @@ describe Messages do
|
|||||||
|
|
||||||
context "when `install_times` is present" do
|
context "when `install_times` is present" do
|
||||||
before do
|
before do
|
||||||
messages.formula_installed(test_formula, elapsed_time)
|
messages.package_installed(test_formula, elapsed_time)
|
||||||
end
|
end
|
||||||
|
|
||||||
it "prints installation times" do
|
it "prints installation times" do
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user