diff options
| author | L. E. Segovia | 2017-10-30 23:29:00 -0300 |
|---|---|---|
| committer | L. E. Segovia | 2017-10-30 23:29:00 -0300 |
| commit | 7f2e4f583a5789a86712322818612c439307b90d (patch) | |
| tree | 12b55d84f1dea61ee7b750823754a98b7c7c0fb8 /Library/Homebrew/cask/lib/hbc/cli | |
| parent | 55727b789532fbfa7997929aa0506d7843eda3ce (diff) | |
| download | brew-7f2e4f583a5789a86712322818612c439307b90d.tar.bz2 | |
Finalize metadata handling and uninstall logic
Diffstat (limited to 'Library/Homebrew/cask/lib/hbc/cli')
| -rw-r--r-- | Library/Homebrew/cask/lib/hbc/cli/upgrade.rb | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/Library/Homebrew/cask/lib/hbc/cli/upgrade.rb b/Library/Homebrew/cask/lib/hbc/cli/upgrade.rb index 49a538704..e68fc4e53 100644 --- a/Library/Homebrew/cask/lib/hbc/cli/upgrade.rb +++ b/Library/Homebrew/cask/lib/hbc/cli/upgrade.rb @@ -34,25 +34,29 @@ module Hbc old_cask_installer = Installer.new(old_cask, binaries: binaries?, verbose: verbose?, force: force?, upgrade: true) - old_cask_installer.uninstall - - begin - odebug "Installing new version of Cask #{old_cask}" - - new_cask = CaskLoader.load(old_cask.to_s) + new_cask = CaskLoader.load(old_cask.to_s) + new_cask_installer = Installer.new(new_cask, binaries: binaries?, verbose: verbose?, force: force?, skip_cask_deps: skip_cask_deps?, require_sha: require_sha?, - upgrade: true).install + upgrade: true) + + begin + # purge artifacts BUT keep metadata aside + old_cask_installer.start_upgrade + + # install BUT do not yet save metadata + new_cask_installer.install + + # if successful, remove old metadata and install new old_cask_installer.finalize_upgrade - rescue CaskUnavailableError => e - opoo e.message - rescue CaskAlreadyInstalledError => e + rescue CaskError => e opoo e.message + old_cask_installer.revert_upgrade end end end |
