25 lines
		
	
	
		
			721 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
		
		
			
		
	
	
			25 lines
		
	
	
		
			721 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
|   | require "hbc/artifact/base" | ||
|  | 
 | ||
|  | class Hbc::Artifact::NestedContainer < Hbc::Artifact::Base | ||
|  |   def install_phase | ||
|  |     @cask.artifacts[:nested_container].each { |container| extract(container) } | ||
|  |   end | ||
|  | 
 | ||
|  |   def uninstall_phase | ||
|  |     # no need to take action; is removed after extraction | ||
|  |   end | ||
|  | 
 | ||
|  |   def extract(container_relative_path) | ||
|  |     source = @cask.staged_path.join(container_relative_path) | ||
|  |     container = Hbc::Container.for_path(source, @command) | ||
|  | 
 | ||
|  |     unless container | ||
|  |       raise Hbc::CaskError, "Aw dang, could not identify nested container at '#{source}'" | ||
|  |     end | ||
|  | 
 | ||
|  |     ohai "Extracting nested container #{source.basename}" | ||
|  |     container.new(@cask, source, @command).extract | ||
|  |     FileUtils.remove_entry_secure(source) | ||
|  |   end | ||
|  | end |