| 
									
										
										
										
											2019-04-19 15:38:03 +09:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-17 18:25:08 +09:00
										 |  |  | require "cli/parser" | 
					
						
							| 
									
										
										
										
											2018-03-24 20:04:45 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-08-31 08:09:50 -04:00
										 |  |  | class Symbol | 
					
						
							| 
									
										
										
										
											2015-01-04 21:37:27 -05:00
										 |  |  |   def f(*args) | 
					
						
							|  |  |  |     Formulary.factory(to_s, *args) | 
					
						
							| 
									
										
										
										
											2012-08-31 08:09:50 -04:00
										 |  |  |   end | 
					
						
							|  |  |  | end | 
					
						
							| 
									
										
										
										
											2017-02-23 06:04:32 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-08-30 22:54:24 -04:00
										 |  |  | class String | 
					
						
							| 
									
										
										
										
											2015-01-04 21:37:27 -05:00
										 |  |  |   def f(*args) | 
					
						
							|  |  |  |     Formulary.factory(self, *args) | 
					
						
							| 
									
										
										
										
											2012-08-30 22:54:24 -04:00
										 |  |  |   end | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-18 22:41:47 -05:00
										 |  |  | module Homebrew | 
					
						
							| 
									
										
										
										
											2016-09-26 01:44:51 +02:00
										 |  |  |   module_function | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-30 18:25:38 +05:30
										 |  |  |   def irb_args | 
					
						
							| 
									
										
										
										
											2020-07-30 18:40:10 +02:00
										 |  |  |     Homebrew::CLI::Parser.new do | 
					
						
							| 
									
										
										
										
											2018-09-28 21:39:52 +05:30
										 |  |  |       usage_banner <<~EOS | 
					
						
							| 
									
										
										
										
											2018-10-15 15:06:33 -04:00
										 |  |  |         `irb` [<options>] | 
					
						
							| 
									
										
										
										
											2018-09-28 21:39:52 +05:30
										 |  |  | 
 | 
					
						
							|  |  |  |         Enter the interactive Homebrew Ruby shell. | 
					
						
							|  |  |  |       EOS | 
					
						
							|  |  |  |       switch "--examples", | 
					
						
							| 
									
										
										
										
											2019-04-30 08:44:35 +01:00
										 |  |  |              description: "Show several examples." | 
					
						
							| 
									
										
										
										
											2018-10-02 19:54:22 +05:30
										 |  |  |       switch "--pry", | 
					
						
							| 
									
										
										
										
											2019-04-30 08:44:35 +01:00
										 |  |  |              env:         :pry, | 
					
						
							|  |  |  |              description: "Use Pry instead of IRB. Implied if `HOMEBREW_PRY` is set." | 
					
						
							| 
									
										
										
										
											2018-03-25 17:48:22 +05:30
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2018-07-30 18:25:38 +05:30
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def irb | 
					
						
							| 
									
										
										
										
											2020-08-03 02:27:20 +01:00
										 |  |  |     # work around IRB modifying ARGV. | 
					
						
							| 
									
										
										
										
											2020-07-31 17:37:36 +02:00
										 |  |  |     args = irb_args.parse(ARGV.dup.freeze) | 
					
						
							| 
									
										
										
										
											2018-03-24 20:04:45 +05:30
										 |  |  | 
 | 
					
						
							|  |  |  |     if args.examples? | 
					
						
							| 
									
										
										
										
											2014-06-19 19:13:45 -05:00
										 |  |  |       puts "'v8'.f # => instance of the v8 formula" | 
					
						
							| 
									
										
										
										
											2020-05-18 13:50:43 +01:00
										 |  |  |       puts ":hub.f.latest_version_installed?" | 
					
						
							| 
									
										
										
										
											2012-08-31 08:09:50 -04:00
										 |  |  |       puts ":lua.f.methods - 1.methods" | 
					
						
							| 
									
										
										
										
											2013-04-10 11:52:54 -05:00
										 |  |  |       puts ":mpd.f.recursive_dependencies.reject(&:installed?)" | 
					
						
							| 
									
										
										
										
											2018-02-28 11:36:23 +00:00
										 |  |  |       return | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-25 11:04:18 +05:30
										 |  |  |     if args.pry? | 
					
						
							| 
									
										
										
										
											2018-02-28 11:36:23 +00:00
										 |  |  |       Homebrew.install_gem_setup_path! "pry" | 
					
						
							|  |  |  |       require "pry" | 
					
						
							|  |  |  |       Pry.config.prompt_name = "brew" | 
					
						
							|  |  |  |     else | 
					
						
							|  |  |  |       require "irb" | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     require "formula" | 
					
						
							|  |  |  |     require "keg" | 
					
						
							| 
									
										
										
										
											2020-08-09 01:34:07 +02:00
										 |  |  |     require "cask" | 
					
						
							| 
									
										
										
										
											2018-02-28 11:36:23 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ohai "Interactive Homebrew Shell" | 
					
						
							|  |  |  |     puts "Example commands available with: brew irb --examples" | 
					
						
							| 
									
										
										
										
											2018-03-25 11:04:18 +05:30
										 |  |  |     if args.pry? | 
					
						
							| 
									
										
										
										
											2018-02-28 11:36:23 +00:00
										 |  |  |       Pry.start | 
					
						
							| 
									
										
										
										
											2012-08-06 14:41:55 -04:00
										 |  |  |     else | 
					
						
							| 
									
										
										
										
											2012-08-21 09:51:28 -04:00
										 |  |  |       IRB.start | 
					
						
							| 
									
										
										
										
											2012-08-06 14:41:55 -04:00
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |