Skip to content

Commit

Permalink
Doctor check for origin
Browse files Browse the repository at this point in the history
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#14399.
Closes Homebrew#17117.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
  • Loading branch information
urdh authored and andrewsharpe committed Jan 20, 2013
1 parent fc7108a commit b2b4e8a
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 0 deletions.
8 changes: 8 additions & 0 deletions Library/Homebrew/cmd/--config.rb
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,13 @@ def head
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
Expand Down Expand Up @@ -124,6 +131,7 @@ def write_build_config f

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}"
Expand Down
38 changes: 38 additions & 0 deletions Library/Homebrew/cmd/doctor.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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?

Expand Down

0 comments on commit b2b4e8a

Please sign in to comment.