From e733fa16a2365003d94d1fa7eccaa1f2adfcf324 Mon Sep 17 00:00:00 2001 From: William Ma Date: Wed, 24 Jun 2020 15:08:42 -0400 Subject: [PATCH] uninstall: Refactor to use AbstractCommand instead of declaring a class method --- Library/Homebrew/cask/cmd/uninstall.rb | 38 ++++++++++++-------------- Library/Homebrew/cmd/uninstall.rb | 6 ++-- 2 files changed, 21 insertions(+), 23 deletions(-) diff --git a/Library/Homebrew/cask/cmd/uninstall.rb b/Library/Homebrew/cask/cmd/uninstall.rb index d554b6853d..dfa8bbfb77 100644 --- a/Library/Homebrew/cask/cmd/uninstall.rb +++ b/Library/Homebrew/cask/cmd/uninstall.rb @@ -12,30 +12,26 @@ module Cask def run casks.each do |cask| - self.class.uninstall_cask cask, binaries?, verbose?, force? + odebug "Uninstalling Cask #{cask}" + + raise CaskNotInstalledError, cask unless cask.installed? || force? + + if cask.installed? && !cask.installed_caskfile.nil? + # use the same cask file that was used for installation, if possible + cask = CaskLoader.load(cask.installed_caskfile) if cask.installed_caskfile.exist? + end + + Installer.new(cask, binaries: binaries?, verbose: verbose?, force: force?).uninstall + + next if (versions = cask.versions).empty? + + puts <<~EOS + #{cask} #{versions.to_sentence} #{"is".pluralize(versions.count)} still installed. + Remove #{(versions.count == 1) ? "it" : "them all"} with `brew cask uninstall --force #{cask}`. + EOS end end - def self.uninstall_cask(cask, binaries, verbose, force) - odebug "Uninstalling Cask #{cask}" - - raise CaskNotInstalledError, cask unless cask.installed? || force - - if cask.installed? && !cask.installed_caskfile.nil? - # use the same cask file that was used for installation, if possible - cask = CaskLoader.load(cask.installed_caskfile) if cask.installed_caskfile.exist? - end - - Installer.new(cask, binaries: binaries, verbose: verbose, force: force).uninstall - - return if (versions = cask.versions).empty? - - puts <<~EOS - #{cask} #{versions.to_sentence} #{"is".pluralize(versions.count)} still installed. - Remove #{(versions.count == 1) ? "it" : "them all"} with `brew cask uninstall --force #{cask}`. - EOS - end - def self.help "uninstalls the given Cask" end diff --git a/Library/Homebrew/cmd/uninstall.rb b/Library/Homebrew/cmd/uninstall.rb index 7da4306b7a..3d16ec70f5 100644 --- a/Library/Homebrew/cmd/uninstall.rb +++ b/Library/Homebrew/cmd/uninstall.rb @@ -119,8 +119,10 @@ module Homebrew end possible_casks.each do |name| - cask = Cask::CaskLoader.load name - Cask::Cmd::Uninstall.uninstall_cask(cask, true, args.verbose, args.force?) + cmd = Cask::Cmd::Uninstall.new(name) + cmd.force = args.force? + cmd.verbose = args.verbose? + cmd.run rescue Cask::CaskUnavailableError ofail "No installed keg or cask with the name \"#{name}\"" end