Refactor CLI::Uninstall.

This commit is contained in:
Markus Reiter 2017-05-20 03:57:38 +02:00
parent 98f91fb883
commit 101371207f

View File

@ -2,22 +2,28 @@ module Hbc
class CLI
class Uninstall < Base
def self.run(*args)
cask_tokens = cask_tokens_from(args)
raise CaskUnspecifiedError if cask_tokens.empty?
force = args.include? "--force"
new(*args).run
end
cask_tokens.each do |cask_token|
def initialize(*args)
@cask_tokens = self.class.cask_tokens_from(args)
raise CaskUnspecifiedError if @cask_tokens.empty?
@force = args.include? "--force"
end
def run
@cask_tokens.each do |cask_token|
odebug "Uninstalling Cask #{cask_token}"
cask = CaskLoader.load(cask_token)
raise CaskNotInstalledError, cask unless cask.installed? || force
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_from_file(cask.installed_caskfile) if cask.installed_caskfile.exist?
end
Installer.new(cask, binaries: CLI.binaries?, force: force).uninstall
Installer.new(cask, binaries: CLI.binaries?, force: @force).uninstall
next if (versions = cask.versions).empty?