diff --git a/Library/Homebrew/cask/cmd/uninstall.rb b/Library/Homebrew/cask/cmd/uninstall.rb index 1acb9fb109..affb7cc723 100644 --- a/Library/Homebrew/cask/cmd/uninstall.rb +++ b/Library/Homebrew/cask/cmd/uninstall.rb @@ -40,11 +40,13 @@ module Cask casks.each do |cask| 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? + if cask.installed? + if installed_caskfile = cask.installed_caskfile + # Use the same cask file that was used for installation, if possible. + cask = CaskLoader.load(installed_caskfile) if installed_caskfile.exist? + end + else + raise CaskNotInstalledError, cask unless force end Installer.new(cask, **options).uninstall diff --git a/Library/Homebrew/cask/cmd/zap.rb b/Library/Homebrew/cask/cmd/zap.rb index d936c0c9f4..2168588e77 100644 --- a/Library/Homebrew/cask/cmd/zap.rb +++ b/Library/Homebrew/cask/cmd/zap.rb @@ -28,7 +28,14 @@ module Cask casks.each do |cask| odebug "Zapping Cask #{cask}" - raise CaskNotInstalledError, cask unless cask.installed? || args.force? + if cask.installed? + if installed_caskfile = cask.installed_caskfile + # Use the same cask file that was used for installation, if possible. + cask = CaskLoader.load(installed_caskfile) if installed_caskfile.exist? + end + else + raise CaskNotInstalledError, cask unless args.force? + end Installer.new(cask, verbose: args.verbose?, force: args.force?).zap end