diff --git a/Library/Homebrew/cask/lib/hbc/cli/reinstall.rb b/Library/Homebrew/cask/lib/hbc/cli/reinstall.rb index 3560a4795b391603080156d40248a93dd61cd2ab..70a329c20b439024233a6cef79151ee74d338c13 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