From 55ef924e7a9f99a9df1c2b7a9b33793f7ae27d8a Mon Sep 17 00:00:00 2001 From: Raymond Wanyoike <raymond.wanyoike@gmail.com> Date: Sun, 4 Dec 2016 13:37:26 +0300 Subject: [PATCH] cask reinstall: download and verify cask before uninstall Closes: caskroom/homebrew-cask#27075 --- .../Homebrew/cask/lib/hbc/cli/reinstall.rb | 34 ++++++++++++++++--- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/Library/Homebrew/cask/lib/hbc/cli/reinstall.rb b/Library/Homebrew/cask/lib/hbc/cli/reinstall.rb index 3560a4795b..70a329c20b 100644 --- a/Library/Homebrew/cask/lib/hbc/cli/reinstall.rb +++ b/Library/Homebrew/cask/lib/hbc/cli/reinstall.rb @@ -7,6 +7,24 @@ module Hbc begin cask = Hbc.load(cask_token) + installer = Installer.new(cask, + force: force, + skip_cask_deps: skip_cask_deps, + require_sha: require_sha) + installer.print_caveats + + # Download + begin + installer.satisfy_dependencies + installer.verify_has_sha if @require_sha && !@force + installer.download + installer.verify + rescue StandardError => e + installer.purge_versioned_files + raise e + end + + # Uninstall if cask.installed? # use copy of cask for uninstallation to avoid 'No such file or directory' bug installed_cask = cask @@ -26,10 +44,18 @@ module Hbc Installer.new(installed_cask, force: true).uninstall end - Installer.new(cask, - force: force, - skip_cask_deps: skip_cask_deps, - require_sha: require_sha).install + # Reinstall + begin + installer.extract_primary_container + installer.install_artifacts + installer.save_caskfile + installer.enable_accessibility_access + rescue StandardError => e + installer.purge_versioned_files + raise e + end + + puts installer.summary count += 1 rescue CaskUnavailableError => e warn_unavailable_with_suggestion cask_token, e -- GitLab