| 
									
										
										
										
											2014-07-05 13:50:54 -05:00
										 |  |  | module Utils | 
					
						
							|  |  |  |   def self.popen_read(*args, &block) | 
					
						
							|  |  |  |     popen(args, "rb", &block) | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-18 17:39:21 -04:00
										 |  |  |   def self.popen_read_text(*args, &block) | 
					
						
							|  |  |  |     popen(args, "r", &block) | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-05 13:50:54 -05:00
										 |  |  |   def self.popen_write(*args, &block) | 
					
						
							|  |  |  |     popen(args, "wb", &block) | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def self.popen(args, mode) | 
					
						
							|  |  |  |     IO.popen("-", mode) do |pipe| | 
					
						
							|  |  |  |       if pipe | 
					
						
							| 
									
										
										
										
											2016-09-23 22:02:23 +02:00
										 |  |  |         return pipe.read unless block_given? | 
					
						
							|  |  |  |         yield pipe | 
					
						
							| 
									
										
										
										
											2014-07-05 13:50:54 -05:00
										 |  |  |       else | 
					
						
							| 
									
										
										
										
											2016-06-01 09:45:49 +02:00
										 |  |  |         $stderr.reopen("/dev/null", "w") | 
					
						
							| 
									
										
										
										
											2014-07-05 13:50:54 -05:00
										 |  |  |         exec(*args) | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |