aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Library/Homebrew/test/utils_spec.rb8
-rw-r--r--Library/Homebrew/utils.rb6
-rwxr-xr-xbin/brew8
3 files changed, 18 insertions, 4 deletions
diff --git a/Library/Homebrew/test/utils_spec.rb b/Library/Homebrew/test/utils_spec.rb
index 314c299a8..dd7ea20de 100644
--- a/Library/Homebrew/test/utils_spec.rb
+++ b/Library/Homebrew/test/utils_spec.rb
@@ -189,7 +189,13 @@ describe "globally-scoped helper methods" do
specify "#which_editor" do
ENV["HOMEBREW_EDITOR"] = "vemate"
- expect(which_editor).to eq("vemate")
+ ENV["HOMEBREW_PATH"] = dir
+
+ editor = dir/"vemate"
+ FileUtils.touch editor
+ FileUtils.chmod 0755, editor
+
+ expect(which_editor).to eql editor
end
specify "#gzip" do
diff --git a/Library/Homebrew/utils.rb b/Library/Homebrew/utils.rb
index 46a8cc68e..7a14916e1 100644
--- a/Library/Homebrew/utils.rb
+++ b/Library/Homebrew/utils.rb
@@ -320,8 +320,8 @@ def which_all(cmd, path = ENV["PATH"])
end
def which_editor
- editor = ENV.values_at("HOMEBREW_EDITOR", "VISUAL", "EDITOR").compact.first
- return editor unless editor.nil?
+ editor = ENV.values_at("HOMEBREW_EDITOR", "VISUAL").compact.first
+ return which(editor, ENV["HOMEBREW_PATH"]) unless editor.nil?
# Find Textmate
editor = "mate" if which "mate"
@@ -334,7 +334,7 @@ def which_editor
opoo <<-EOS.undent
Using #{editor} because no editor was set in the environment.
- This may change in the future, so we recommend setting EDITOR, VISUAL,
+ This may change in the future, so we recommend setting EDITOR,
or HOMEBREW_EDITOR to your preferred text editor.
EOS
diff --git a/bin/brew b/bin/brew
index 43a807c7b..84be2fb1d 100755
--- a/bin/brew
+++ b/bin/brew
@@ -44,6 +44,14 @@ fi
HOMEBREW_LIBRARY="$HOMEBREW_REPOSITORY/Library"
+for VAR in EDITOR PATH
+do
+ VAR_NEW="HOMEBREW_${VAR}"
+ # TODO: find a better solution than this.
+ env | grep -q "$VAR_NEW" && continue
+ export "$VAR_NEW"="${!VAR}"
+done
+
if [[ -n "$HOMEBREW_ENV_FILTERING" ]]
then
PATH="/usr/bin:/bin:/usr/sbin:/sbin"