| 
									
										
										
										
											2014-05-17 17:12:40 -05:00
										 |  |  | require "stringio" | 
					
						
							|  |  |  | require "formula" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | module Homebrew | 
					
						
							|  |  |  |   def unpack | 
					
						
							|  |  |  |     formulae = ARGV.formulae | 
					
						
							|  |  |  |     raise FormulaUnspecifiedError if formulae.empty? | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if dir = ARGV.value("destdir") | 
					
						
							| 
									
										
										
										
											2015-03-25 22:22:51 -04:00
										 |  |  |       unpack_dir = Pathname.new(dir).expand_path | 
					
						
							| 
									
										
										
										
											2014-05-17 17:12:40 -05:00
										 |  |  |       unpack_dir.mkpath | 
					
						
							|  |  |  |     else | 
					
						
							|  |  |  |       unpack_dir = Pathname.pwd | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     raise "Cannot write to #{unpack_dir}" unless unpack_dir.writable_real? | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     formulae.each do |f| | 
					
						
							|  |  |  |       stage_dir = unpack_dir.join("#{f.name}-#{f.version}") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       if stage_dir.exist? | 
					
						
							|  |  |  |         raise "Destination #{stage_dir} already exists!" unless ARGV.force? | 
					
						
							|  |  |  |         rm_rf stage_dir | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-27 21:20:17 +08:00
										 |  |  |       oh1 "Unpacking #{f.full_name} to: #{stage_dir}" | 
					
						
							| 
									
										
										
										
											2014-05-17 17:12:40 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |       ENV["VERBOSE"] = "1" # show messages about tar | 
					
						
							| 
									
										
										
										
											2015-04-24 14:38:27 +09:00
										 |  |  |       f.brew do | 
					
						
							|  |  |  |         f.patch if ARGV.flag?("--patch") | 
					
						
							| 
									
										
										
										
											2016-01-14 20:42:37 +08:00
										 |  |  |         cp_r getwd, stage_dir, :preserve => true | 
					
						
							| 
									
										
										
										
											2015-04-24 14:38:27 +09:00
										 |  |  |       end | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |       ENV["VERBOSE"] = nil | 
					
						
							| 
									
										
										
										
											2014-05-17 17:12:40 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-11-03 21:33:20 -06:00
										 |  |  |       if ARGV.git? | 
					
						
							| 
									
										
										
										
											2014-05-17 17:12:40 -05:00
										 |  |  |         ohai "Setting up git repository" | 
					
						
							|  |  |  |         cd stage_dir | 
					
						
							|  |  |  |         system "git", "init", "-q" | 
					
						
							|  |  |  |         system "git", "add", "-A" | 
					
						
							|  |  |  |         system "git", "commit", "-q", "-m", "brew-unpack" | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |