| 
									
										
										
										
											2023-03-13 18:31:26 -07:00
										 |  |  | # typed: true | 
					
						
							| 
									
										
										
										
											2023-03-09 22:33:29 +09:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | module Cask | 
					
						
							|  |  |  |   # @api private | 
					
						
							|  |  |  |   class Uninstall | 
					
						
							|  |  |  |     def self.uninstall_casks(*casks, binaries: nil, force: false, verbose: false) | 
					
						
							|  |  |  |       require "cask/installer" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       casks.each do |cask| | 
					
						
							|  |  |  |         odebug "Uninstalling Cask #{cask}" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         raise CaskNotInstalledError, cask if !cask.installed? && !force | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-03-11 21:15:24 +09:00
										 |  |  |         Installer.new(cask, binaries: binaries, force: force, verbose: verbose).uninstall | 
					
						
							| 
									
										
										
										
											2023-03-09 22:33:29 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  |         next if (versions = cask.versions).empty? | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         puts <<~EOS | 
					
						
							|  |  |  |           #{cask} #{versions.to_sentence} #{(versions.count == 1) ? "is" : "are"} still installed. | 
					
						
							|  |  |  |           Remove #{(versions.count == 1) ? "it" : "them all"} with `brew uninstall --cask --force #{cask}`. | 
					
						
							|  |  |  |         EOS | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |