aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorscoates2009-09-05 14:03:41 -0400
committerMax Howell2009-09-05 19:10:56 +0100
commit7709c3699a5e01f01abee08c8fec59ce57eceeb7 (patch)
tree4a393b31a3359dd52e85e4f5fd2c1d029e9e7130
parentc7976fcca2763ec7586a723c32c91688f76a2657 (diff)
downloadbrew-7709c3699a5e01f01abee08c8fec59ce57eceeb7.tar.bz2
Use ENV[EDITOR] if possible
Defaulting to EDITOR, then checking for the mate command, and then using vim as a last resort. Signed Off By: Max Howell <max@methylblue.com> Plain brew edit still uses Textmate though because a client that supported a project concept is required for that particular feature. Patches for that welcome.
-rw-r--r--Library/Homebrew/utils.rb12
-rwxr-xr-xbin/brew11
2 files changed, 19 insertions, 4 deletions
diff --git a/Library/Homebrew/utils.rb b/Library/Homebrew/utils.rb
index 8bd2537e5..0dd26d49b 100644
--- a/Library/Homebrew/utils.rb
+++ b/Library/Homebrew/utils.rb
@@ -80,3 +80,15 @@ def puts_columns items, cols = 4
width=`stty size`.chomp.split(" ").last
IO.popen("pr -#{cols} -t", "w"){|io| io.write(items) }
end
+
+def exec_editor *args
+ editor=ENV['EDITOR']
+ if editor.nil?
+ if system "which -s mate" and $?.success?
+ editor='mate'
+ else
+ editor='vim'
+ end
+ end
+ exec editor, *args
+end
diff --git a/bin/brew b/bin/brew
index 1509daa36..a0feec3f7 100755
--- a/bin/brew
+++ b/bin/brew
@@ -34,7 +34,7 @@ end
if Hardware.cpu_type == :ppc or Hardware.cpu_type == :dunno
abort "Sorry, Homebrew does not support your computer's CPU architecture."
end
-unless system "which gcc-4.2 &> /dev/null" and $?.success?
+unless system "which -s gcc-4.2" and $?.success?
abort "Sorry, Homebrew requires gcc 4.2, which is provided by Xcode 3.1"
end
@@ -66,11 +66,14 @@ begin
when 'edit'
if ARGV.named_empty?
- exec "mate", *Dir["#{HOMEBREW_PREFIX}/Library/*"]<<
+ # EDITOR isn't a good fit here, we need a GUI client that actually has
+ # a UI for projects, so apologies if this wasn't what you expected,
+ # please improve it! :)
+ exec 'mate', *Dir["#{HOMEBREW_PREFIX}/Library/*"]<<
"#{HOMEBREW_PREFIX}/bin/brew"<<
"#{HOMEBREW_PREFIX}/README"
else
- exec "mate", *ARGV.formulae.collect {|f| f.path}
+ exec_editor *ARGV.formulae.collect {|f| f.path}
end
when 'install'
@@ -179,7 +182,7 @@ begin
if ARGV.include? '--macports'
exec "open", "http://www.macports.org/ports.php?by=name&substr=#{ARGV.next}"
else
- exec "mate", *ARGV.collect {|name| make name}
+ exec_editor *ARGV.collect {|name| make name}
end
when 'diy', 'configure'