Merge pull request #2362 from joshka/install-uninstall-messages
Install uninstall messages
This commit is contained in:
commit
cb17a80577
@ -7,30 +7,10 @@ module Hbc
|
|||||||
begin
|
begin
|
||||||
cask = CaskLoader.load(cask_token)
|
cask = CaskLoader.load(cask_token)
|
||||||
|
|
||||||
installer = Installer.new(cask,
|
Installer.new(cask,
|
||||||
force: force,
|
force: force,
|
||||||
skip_cask_deps: skip_cask_deps,
|
skip_cask_deps: skip_cask_deps,
|
||||||
require_sha: require_sha)
|
require_sha: require_sha).reinstall
|
||||||
installer.print_caveats
|
|
||||||
installer.fetch
|
|
||||||
|
|
||||||
if cask.installed?
|
|
||||||
# use copy of cask for uninstallation to avoid 'No such file or directory' bug
|
|
||||||
installed_cask = cask
|
|
||||||
|
|
||||||
# use the same cask file that was used for installation, if possible
|
|
||||||
if (installed_caskfile = installed_cask.installed_caskfile).exist?
|
|
||||||
installed_cask = CaskLoader.load_from_file(installed_caskfile)
|
|
||||||
end
|
|
||||||
|
|
||||||
# Always force uninstallation, ignore method parameter
|
|
||||||
Installer.new(installed_cask, force: true).uninstall
|
|
||||||
end
|
|
||||||
|
|
||||||
installer.stage
|
|
||||||
installer.install_artifacts
|
|
||||||
installer.enable_accessibility_access
|
|
||||||
puts installer.summary
|
|
||||||
|
|
||||||
count += 1
|
count += 1
|
||||||
rescue CaskUnavailableError => e
|
rescue CaskUnavailableError => e
|
||||||
|
@ -24,6 +24,7 @@ module Hbc
|
|||||||
@force = force
|
@force = force
|
||||||
@skip_cask_deps = skip_cask_deps
|
@skip_cask_deps = skip_cask_deps
|
||||||
@require_sha = require_sha
|
@require_sha = require_sha
|
||||||
|
@reinstall = false
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.print_caveats(cask)
|
def self.print_caveats(cask)
|
||||||
@ -76,13 +77,16 @@ module Hbc
|
|||||||
def install
|
def install
|
||||||
odebug "Hbc::Installer#install"
|
odebug "Hbc::Installer#install"
|
||||||
|
|
||||||
if @cask.installed? && !force
|
if @cask.installed? && !force && !@reinstall
|
||||||
raise CaskAlreadyInstalledAutoUpdatesError, @cask if @cask.auto_updates
|
raise CaskAlreadyInstalledAutoUpdatesError, @cask if @cask.auto_updates
|
||||||
raise CaskAlreadyInstalledError, @cask
|
raise CaskAlreadyInstalledError, @cask
|
||||||
end
|
end
|
||||||
|
|
||||||
print_caveats
|
print_caveats
|
||||||
fetch
|
fetch
|
||||||
|
uninstall_existing_cask if @reinstall
|
||||||
|
|
||||||
|
oh1 "Installing Cask #{@cask}"
|
||||||
stage
|
stage
|
||||||
install_artifacts
|
install_artifacts
|
||||||
enable_accessibility_access
|
enable_accessibility_access
|
||||||
@ -90,6 +94,23 @@ module Hbc
|
|||||||
puts summary
|
puts summary
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def reinstall
|
||||||
|
odebug "Hbc::Installer#reinstall"
|
||||||
|
@reinstall = true
|
||||||
|
install
|
||||||
|
end
|
||||||
|
|
||||||
|
def uninstall_existing_cask
|
||||||
|
return unless @cask.installed?
|
||||||
|
|
||||||
|
# use the same cask file that was used for installation, if possible
|
||||||
|
installed_caskfile = @cask.installed_caskfile
|
||||||
|
installed_cask = installed_caskfile.exist? ? CaskLoader.load_from_file(installed_caskfile) : @cask
|
||||||
|
|
||||||
|
# Always force uninstallation, ignore method parameter
|
||||||
|
Installer.new(installed_cask, force: true).uninstall
|
||||||
|
end
|
||||||
|
|
||||||
def summary
|
def summary
|
||||||
s = ""
|
s = ""
|
||||||
s << "#{Emoji.install_badge} " if Emoji.enabled?
|
s << "#{Emoji.install_badge} " if Emoji.enabled?
|
||||||
@ -305,7 +326,7 @@ module Hbc
|
|||||||
end
|
end
|
||||||
|
|
||||||
def uninstall
|
def uninstall
|
||||||
odebug "Hbc::Installer#uninstall"
|
oh1 "Uninstalling Cask #{@cask}"
|
||||||
disable_accessibility_access
|
disable_accessibility_access
|
||||||
uninstall_artifacts
|
uninstall_artifacts
|
||||||
purge_versioned_files
|
purge_versioned_files
|
||||||
|
@ -1,4 +1,18 @@
|
|||||||
describe Hbc::CLI::Install, :cask do
|
describe Hbc::CLI::Install, :cask do
|
||||||
|
it "displays the installation progress" do
|
||||||
|
output = Regexp.new <<-EOS.undent
|
||||||
|
==> Downloading file:.*caffeine.zip
|
||||||
|
==> Verifying checksum for Cask local-caffeine
|
||||||
|
==> Installing Cask local-caffeine
|
||||||
|
==> Moving App 'Caffeine.app' to '.*Caffeine.app'.
|
||||||
|
.*local-caffeine was successfully installed!
|
||||||
|
EOS
|
||||||
|
|
||||||
|
expect {
|
||||||
|
Hbc::CLI::Install.run("local-caffeine")
|
||||||
|
}.to output(output).to_stdout
|
||||||
|
end
|
||||||
|
|
||||||
it "allows staging and activation of multiple Casks at once" do
|
it "allows staging and activation of multiple Casks at once" do
|
||||||
shutup do
|
shutup do
|
||||||
Hbc::CLI::Install.run("local-transmission", "local-caffeine")
|
Hbc::CLI::Install.run("local-transmission", "local-caffeine")
|
||||||
|
@ -1,4 +1,27 @@
|
|||||||
describe Hbc::CLI::Reinstall, :cask do
|
describe Hbc::CLI::Reinstall, :cask do
|
||||||
|
it "displays the reinstallation progress" do
|
||||||
|
caffeine = Hbc::CaskLoader.load_from_file(TEST_FIXTURE_DIR/"cask/Casks/local-caffeine.rb")
|
||||||
|
|
||||||
|
shutup do
|
||||||
|
Hbc::Installer.new(caffeine).install
|
||||||
|
end
|
||||||
|
|
||||||
|
output = Regexp.new <<-EOS.undent
|
||||||
|
==> Downloading file:.*caffeine.zip
|
||||||
|
Already downloaded: .*local-caffeine--1.2.3.zip
|
||||||
|
==> Verifying checksum for Cask local-caffeine
|
||||||
|
==> Uninstalling Cask local-caffeine
|
||||||
|
==> Removing App '.*Caffeine.app'.
|
||||||
|
==> Installing Cask local-caffeine
|
||||||
|
==> Moving App 'Caffeine.app' to '.*Caffeine.app'.
|
||||||
|
.*local-caffeine was successfully installed!
|
||||||
|
EOS
|
||||||
|
|
||||||
|
expect {
|
||||||
|
Hbc::CLI::Reinstall.run("local-caffeine")
|
||||||
|
}.to output(output).to_stdout
|
||||||
|
end
|
||||||
|
|
||||||
it "allows reinstalling a Cask" do
|
it "allows reinstalling a Cask" do
|
||||||
shutup do
|
shutup do
|
||||||
Hbc::CLI::Install.run("local-transmission")
|
Hbc::CLI::Install.run("local-transmission")
|
||||||
|
@ -1,4 +1,21 @@
|
|||||||
describe Hbc::CLI::Uninstall, :cask do
|
describe Hbc::CLI::Uninstall, :cask do
|
||||||
|
it "displays the uninstallation progress" do
|
||||||
|
caffeine = Hbc::CaskLoader.load_from_file(TEST_FIXTURE_DIR/"cask/Casks/local-caffeine.rb")
|
||||||
|
|
||||||
|
shutup do
|
||||||
|
Hbc::Installer.new(caffeine).install
|
||||||
|
end
|
||||||
|
|
||||||
|
output = Regexp.new <<-EOS.undent
|
||||||
|
==> Uninstalling Cask local-caffeine
|
||||||
|
==> Removing App '.*Caffeine.app'.
|
||||||
|
EOS
|
||||||
|
|
||||||
|
expect {
|
||||||
|
Hbc::CLI::Uninstall.run("local-caffeine")
|
||||||
|
}.to output(output).to_stdout
|
||||||
|
end
|
||||||
|
|
||||||
it "shows an error when a bad Cask is provided" do
|
it "shows an error when a bad Cask is provided" do
|
||||||
expect {
|
expect {
|
||||||
Hbc::CLI::Uninstall.run("notacask")
|
Hbc::CLI::Uninstall.run("notacask")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user