| 
									
										
										
										
											2016-04-08 16:28:43 +02:00
										 |  |  | #:  * `edit`: | 
					
						
							|  |  |  | #:    Open all of Homebrew for editing. | 
					
						
							|  |  |  | #: | 
					
						
							|  |  |  | #:  * `edit` <formula>: | 
					
						
							|  |  |  | #:    Open <formula> in the editor. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  | require "formula" | 
					
						
							| 
									
										
										
										
											2010-09-11 20:22:54 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-18 22:41:47 -05:00
										 |  |  | module Homebrew | 
					
						
							| 
									
										
										
										
											2016-09-26 01:44:51 +02:00
										 |  |  |   module_function | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-11 20:22:54 +01:00
										 |  |  |   def edit | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |     unless (HOMEBREW_REPOSITORY/".git").directory? | 
					
						
							| 
									
										
										
										
											2012-08-01 15:56:52 -04:00
										 |  |  |       raise <<-EOS.undent
 | 
					
						
							|  |  |  |         Changes will be lost! | 
					
						
							|  |  |  |         The first time you `brew update', all local changes will be lost, you should
 | 
					
						
							|  |  |  |         thus `brew update' before you `brew edit'! | 
					
						
							|  |  |  |         EOS | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-12-16 14:27:58 -08:00
										 |  |  |     # If no brews are listed, open the project root in an editor. | 
					
						
							| 
									
										
										
										
											2010-09-11 20:22:54 +01:00
										 |  |  |     if ARGV.named.empty? | 
					
						
							| 
									
										
										
										
											2012-01-14 02:40:43 +00:00
										 |  |  |       editor = File.basename which_editor | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |       if editor == "mate" || editor == "subl" | 
					
						
							| 
									
										
										
										
											2012-09-10 12:28:00 -05:00
										 |  |  |         # If the user is using TextMate or Sublime Text, | 
					
						
							|  |  |  |         # give a nice project view instead. | 
					
						
							| 
									
										
										
										
											2015-01-05 15:28:31 -05:00
										 |  |  |         exec_editor HOMEBREW_REPOSITORY+"bin/brew", | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |                     HOMEBREW_REPOSITORY+"README.md", | 
					
						
							| 
									
										
										
										
											2015-01-05 15:28:31 -05:00
										 |  |  |                     HOMEBREW_REPOSITORY+".gitignore", | 
					
						
							| 
									
										
										
										
											2011-12-16 14:27:58 -08:00
										 |  |  |                     *library_folders | 
					
						
							|  |  |  |       else | 
					
						
							|  |  |  |         exec_editor HOMEBREW_REPOSITORY | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2010-09-11 20:22:54 +01:00
										 |  |  |     else | 
					
						
							|  |  |  |       # Don't use ARGV.formulae as that will throw if the file doesn't parse | 
					
						
							|  |  |  |       paths = ARGV.named.map do |name| | 
					
						
							| 
									
										
										
										
											2015-05-08 13:48:36 +08:00
										 |  |  |         path = Formulary.path(name) | 
					
						
							| 
									
										
										
										
											2016-09-23 11:01:40 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |         raise FormulaUnavailableError, name unless path.file? || ARGV.force? | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-08 13:48:36 +08:00
										 |  |  |         path | 
					
						
							| 
									
										
										
										
											2010-09-11 20:22:54 +01:00
										 |  |  |       end | 
					
						
							| 
									
										
										
										
											2013-04-06 00:14:03 -05:00
										 |  |  |       exec_editor(*paths) | 
					
						
							| 
									
										
										
										
											2010-09-11 20:22:54 +01:00
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2011-08-24 14:45:01 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |   def library_folders | 
					
						
							| 
									
										
										
										
											2013-10-30 13:20:48 -07:00
										 |  |  |     Dir["#{HOMEBREW_LIBRARY}/*"].reject do |d| | 
					
						
							| 
									
										
										
										
											2016-09-11 17:41:51 +01:00
										 |  |  |       case File.basename(d) | 
					
						
							|  |  |  |       when "LinkedKegs", "Aliases" then true | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2011-08-24 14:45:01 +01:00
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2010-09-11 20:22:54 +01:00
										 |  |  | end |