aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJack Nagel2012-12-27 23:34:29 -0600
committerJack Nagel2012-12-27 23:41:44 -0600
commit9362a7c89732a1cea6a1ada1062fedcf24505b8a (patch)
tree2388e2f164d4eabe429e16d00d16d863dd38f737
parent1bce10ad6caa96614a770e1e1de86ffb25215e42 (diff)
downloadbrew-9362a7c89732a1cea6a1ada1062fedcf24505b8a.tar.bz2
Respect BROWSER environment variable
-rw-r--r--Library/Homebrew/cmd/create.rb4
-rw-r--r--Library/Homebrew/cmd/home.rb4
-rw-r--r--Library/Homebrew/cmd/search.rb4
-rw-r--r--Library/Homebrew/utils.rb15
4 files changed, 17 insertions, 10 deletions
diff --git a/Library/Homebrew/cmd/create.rb b/Library/Homebrew/cmd/create.rb
index f5810c1b3..0f0e14d22 100644
--- a/Library/Homebrew/cmd/create.rb
+++ b/Library/Homebrew/cmd/create.rb
@@ -8,9 +8,9 @@ module Homebrew extend self
# Allow searching MacPorts or Fink.
if ARGV.include? '--macports'
- exec "open", "http://www.macports.org/ports.php?by=name&substr=#{ARGV.next}"
+ exec_browser "http://www.macports.org/ports.php?by=name&substr=#{ARGV.next}"
elsif ARGV.include? '--fink'
- exec "open", "http://pdb.finkproject.org/pdb/browse.php?summary=#{ARGV.next}"
+ exec_browser "http://pdb.finkproject.org/pdb/browse.php?summary=#{ARGV.next}"
end
raise UsageError if ARGV.named.empty?
diff --git a/Library/Homebrew/cmd/home.rb b/Library/Homebrew/cmd/home.rb
index a91607988..75263f172 100644
--- a/Library/Homebrew/cmd/home.rb
+++ b/Library/Homebrew/cmd/home.rb
@@ -1,9 +1,9 @@
module Homebrew extend self
def home
if ARGV.named.empty?
- exec "open", HOMEBREW_WWW
+ exec_browser HOMEBREW_WWW
else
- exec "open", *ARGV.formulae.map{ |f| f.homepage }
+ exec_browser *ARGV.formulae.map{ |f| f.homepage }
end
end
end
diff --git a/Library/Homebrew/cmd/search.rb b/Library/Homebrew/cmd/search.rb
index 4cb17f229..b1109547c 100644
--- a/Library/Homebrew/cmd/search.rb
+++ b/Library/Homebrew/cmd/search.rb
@@ -4,9 +4,9 @@ require "blacklist"
module Homebrew extend self
def search
if ARGV.include? '--macports'
- exec "open", "http://www.macports.org/ports.php?by=name&substr=#{ARGV.next}"
+ exec_browser "http://www.macports.org/ports.php?by=name&substr=#{ARGV.next}"
elsif ARGV.include? '--fink'
- exec "open", "http://pdb.finkproject.org/pdb/browse.php?summary=#{ARGV.next}"
+ exec_browser "http://pdb.finkproject.org/pdb/browse.php?summary=#{ARGV.next}"
else
query = ARGV.first
rx = case query
diff --git a/Library/Homebrew/utils.rb b/Library/Homebrew/utils.rb
index 348dbbdea..d91df676b 100644
--- a/Library/Homebrew/utils.rb
+++ b/Library/Homebrew/utils.rb
@@ -171,11 +171,18 @@ end
def exec_editor *args
return if args.to_s.empty?
+ safe_exec(which_editor, *args)
+end
+
+def exec_browser *args
+ browser = ENV['HOMEBREW_BROWSER'] || ENV['BROWSER'] || "open"
+ safe_exec(browser, *args)
+end
- # Invoke bash to evaluate env vars in $EDITOR
- # This also gets us proper argument quoting.
- # See: https://github.com/mxcl/homebrew/issues/5123
- system "bash", "-i", "-c", which_editor + ' "$@"', "--", *args
+def safe_exec cmd, *args
+ # This buys us proper argument quoting and evaluation
+ # of environment variables in the cmd parameter.
+ exec "/bin/sh", "-i", "-c", cmd + ' "$@"', "--", *args
end
# GZips the given paths, and returns the gzipped paths