aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Sigurdhsson2013-01-16 15:56:36 +0100
committerJack Nagel2013-01-17 17:18:15 -0600
commit8000fb807feccb3019536468a75dfecb1d2dcee9 (patch)
tree5b462da162095dac712b0f182910faf4869b06e4
parent968782a31b98697a5be8f31097f48e4fb1ddfb66 (diff)
downloadbrew-8000fb807feccb3019536468a75dfecb1d2dcee9.tar.bz2
Doctor check for origin
Added checks on doctor.rb for: * Missing git origin * git origin not pointing at mxcl/homebrew Tests use `git config --get remote.origin.url`. Also added printout of origin to --config.rb. Fixes Homebrew/homebrew#14399. Closes Homebrew/homebrew#17117. Signed-off-by: Jack Nagel <jacknagel@gmail.com>
-rw-r--r--Library/Homebrew/cmd/--config.rb8
-rw-r--r--Library/Homebrew/cmd/doctor.rb38
2 files changed, 46 insertions, 0 deletions
diff --git a/Library/Homebrew/cmd/--config.rb b/Library/Homebrew/cmd/--config.rb
index ac113c885..6f6368291 100644
--- a/Library/Homebrew/cmd/--config.rb
+++ b/Library/Homebrew/cmd/--config.rb
@@ -54,6 +54,13 @@ module Homebrew extend self
if head.empty? then "(none)" else head end
end
+ def origin
+ origin = HOMEBREW_REPOSITORY.cd do
+ `git config --get remote.origin.url`.chomp
+ end
+ if origin.empty? then "(none)" else origin end
+ end
+
def describe_path path
return "N/A" if path.nil?
realpath = path.realpath
@@ -124,6 +131,7 @@ module Homebrew extend self
def dump_verbose_config
puts "HOMEBREW_VERSION: #{HOMEBREW_VERSION}"
+ puts "ORIGIN: #{origin}"
puts "HEAD: #{head}"
puts "HOMEBREW_PREFIX: #{HOMEBREW_PREFIX}"
puts "HOMEBREW_CELLAR: #{HOMEBREW_CELLAR}"
diff --git a/Library/Homebrew/cmd/doctor.rb b/Library/Homebrew/cmd/doctor.rb
index 9ab3c46f8..d57226a99 100644
--- a/Library/Homebrew/cmd/doctor.rb
+++ b/Library/Homebrew/cmd/doctor.rb
@@ -721,6 +721,44 @@ def check_git_newline_settings
end
end
+def check_for_git_origin
+ return unless which "git"
+
+ HOMEBREW_REPOSITORY.cd do
+ if `git config --get remote.origin.url`.chomp.empty? then <<-EOS.undent
+ Missing git origin remote.
+
+ Without a correctly configured origin, Homebrew won't update
+ properly. You can solve this by adding the Homebrew remote:
+ cd #{HOMEBREW_REPOSITORY}
+ git add remote origin https://github.com/mxcl/homebrew.git
+ EOS
+ end
+ end
+end
+
+def check_the_git_origin
+ return unless which "git"
+ return if check_for_git_origin
+
+ HOMEBREW_REPOSITORY.cd do
+ origin = `git config --get remote.origin.url`.chomp
+
+ unless origin =~ /mxcl\/homebrew\.git$/ then <<-EOS.undent
+ Suspicious git origin remote found.
+
+ With a non-standard origin, Homebrew won't pull updates from
+ the main repository. The current git origin is:
+ #{origin}
+
+ Unless you have compelling reasons, consider setting the
+ origin remote to point at the main repository, located at:
+ https://github.com/mxcl/homebrew.git
+ EOS
+ end
+ end
+end
+
def check_for_autoconf
return unless MacOS::Xcode.provides_autotools?