uninstall: Refactor to use AbstractCommand instead of declaring a class method
This commit is contained in:
parent
d1004c8143
commit
e733fa16a2
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user