diff options
| author | Joshua McKinney | 2017-03-18 17:48:20 -0500 |
|---|---|---|
| committer | Joshua McKinney | 2017-03-19 13:14:16 -0500 |
| commit | 367fdb971839c0b3686ca23a6de76da75cc80580 (patch) | |
| tree | 56b82be0f60a2b8c6c15a238880a4504c5d2305e /Library | |
| parent | 76955b47bd2ae3eba1b041430d7e1aeab246de0d (diff) | |
| download | brew-367fdb971839c0b3686ca23a6de76da75cc80580.tar.bz2 | |
Refactor brew cask reinstall
The implementation of the reinstall command was the same as
Installer#install, aside from the uninstall of the existing cask.
Moved this within the class to DRY up the implementation.
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/cask/lib/hbc/cli/reinstall.rb | 29 | ||||
| -rw-r--r-- | Library/Homebrew/cask/lib/hbc/installer.rb | 19 |
2 files changed, 22 insertions, 26 deletions
diff --git a/Library/Homebrew/cask/lib/hbc/cli/reinstall.rb b/Library/Homebrew/cask/lib/hbc/cli/reinstall.rb index b52c43328..c27fa9f2f 100644 --- a/Library/Homebrew/cask/lib/hbc/cli/reinstall.rb +++ b/Library/Homebrew/cask/lib/hbc/cli/reinstall.rb @@ -7,30 +7,11 @@ module Hbc begin cask = CaskLoader.load(cask_token) - installer = Installer.new(cask, - force: force, - skip_cask_deps: skip_cask_deps, - require_sha: require_sha) - 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 + Installer.new(cask, + force: force, + skip_cask_deps: skip_cask_deps, + require_sha: require_sha, + reinstall: true).install count += 1 rescue CaskUnavailableError => e diff --git a/Library/Homebrew/cask/lib/hbc/installer.rb b/Library/Homebrew/cask/lib/hbc/installer.rb index 824c1b1be..6f6957574 100644 --- a/Library/Homebrew/cask/lib/hbc/installer.rb +++ b/Library/Homebrew/cask/lib/hbc/installer.rb @@ -18,12 +18,13 @@ module Hbc PERSISTENT_METADATA_SUBDIRS = ["gpg"].freeze - def initialize(cask, command: SystemCommand, force: false, skip_cask_deps: false, require_sha: false) + def initialize(cask, command: SystemCommand, force: false, skip_cask_deps: false, require_sha: false, reinstall: false) @cask = cask @command = command @force = force @skip_cask_deps = skip_cask_deps @require_sha = require_sha + @reinstall = reinstall end def self.print_caveats(cask) @@ -76,13 +77,14 @@ module Hbc def install odebug "Hbc::Installer#install" - if @cask.installed? && !force + if @cask.installed? && !force && !@reinstall raise CaskAlreadyInstalledAutoUpdatesError, @cask if @cask.auto_updates raise CaskAlreadyInstalledError, @cask end print_caveats fetch + uninstall_if_neccessary stage install_artifacts enable_accessibility_access @@ -90,6 +92,19 @@ module Hbc puts summary end + def uninstall_if_neccessary + return unless @cask.installed? && @reinstall + 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 + def summary s = "" s << "#{Emoji.install_badge} " if Emoji.enabled? |
