| 
									
										
										
										
											2016-09-24 13:52:43 +02:00
										 |  |  | module Hbc | 
					
						
							|  |  |  |   class Auditor | 
					
						
							|  |  |  |     def self.audit(cask, audit_download: false, check_token_conflicts: false) | 
					
						
							| 
									
										
										
										
											2016-10-11 15:10:12 +02:00
										 |  |  |       if !ARGV.value("language") && | 
					
						
							|  |  |  |         languages_blocks = cask.instance_variable_get(:@dsl).instance_variable_get(:@language_blocks) | 
					
						
							| 
									
										
										
										
											2016-10-03 10:23:30 +02:00
										 |  |  |         begin | 
					
						
							|  |  |  |           saved_languages = MacOS.instance_variable_get(:@languages) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           languages_blocks.keys.map { |languages| | 
					
						
							|  |  |  |             ohai "Auditing language: #{languages.map { |lang| "'#{lang}'" }.join(", ")}" | 
					
						
							|  |  |  |             MacOS.instance_variable_set(:@languages, languages) | 
					
						
							|  |  |  |             audit_cask_instance(Hbc.load(cask.sourcefile_path), audit_download, check_token_conflicts) | 
					
						
							| 
									
										
										
										
											2016-10-11 15:10:12 +02:00
										 |  |  |             CLI::Cleanup.run(cask.token) if audit_download | 
					
						
							| 
									
										
										
										
											2016-10-03 10:23:30 +02:00
										 |  |  |           }.all? | 
					
						
							|  |  |  |         ensure | 
					
						
							|  |  |  |           MacOS.instance_variable_set(:@languages, saved_languages) | 
					
						
							| 
									
										
										
										
											2016-09-25 22:47:31 +02:00
										 |  |  |         end | 
					
						
							|  |  |  |       else | 
					
						
							|  |  |  |         audit_cask_instance(cask, audit_download, check_token_conflicts) | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def self.audit_cask_instance(cask, audit_download, check_token_conflicts) | 
					
						
							| 
									
										
										
										
											2016-09-24 13:52:43 +02:00
										 |  |  |       download = audit_download && Download.new(cask) | 
					
						
							|  |  |  |       audit = Audit.new(cask, download:              download, | 
					
						
							|  |  |  |                               check_token_conflicts: check_token_conflicts) | 
					
						
							|  |  |  |       audit.run! | 
					
						
							|  |  |  |       puts audit.summary | 
					
						
							|  |  |  |       audit.success? | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  |   end | 
					
						
							|  |  |  | end |