diff --git a/Library/Homebrew/cmd/uninstall.rb b/Library/Homebrew/cmd/uninstall.rb index 50a9abd5d1..9465360839 100644 --- a/Library/Homebrew/cmd/uninstall.rb +++ b/Library/Homebrew/cmd/uninstall.rb @@ -8,6 +8,8 @@ require "migrator" require "cli/parser" require "cask/cmd" require "cask/cask_loader" +require "cask/exceptions" +require "cask/installer" require "uninstall" module Homebrew @@ -66,11 +68,13 @@ module Homebrew ) if args.zap? - T.unsafe(Cask::Cmd::Zap).zap_casks( - *casks, - verbose: args.verbose?, - force: args.force?, - ) + casks.each do |cask| + odebug "Zapping Cask #{cask}" + + raise Cask::CaskNotInstalledError, cask if !cask.installed? && !args.force? + + Cask::Installer.new(cask, verbose: args.verbose?, force: args.force?).zap + end else T.unsafe(Cask::Cmd::Uninstall).uninstall_casks( *casks,