Tap: make remote a separate method to reduce initial overhead
Also make remote method only response to installed tap.
This commit is contained in:
parent
b88cb13718
commit
4101cef3c5
@ -48,7 +48,7 @@ module Homebrew
|
||||
info += "Not installed"
|
||||
end
|
||||
puts info
|
||||
puts "From: #{tap.remote}"
|
||||
puts "From: #{tap.remote.nil? ? "N/A" : tap.remote}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -14,10 +14,11 @@ module Homebrew
|
||||
end
|
||||
|
||||
def install_tap user, repo, clone_target=nil
|
||||
tap = Tap.new user, repo, clone_target
|
||||
tap = Tap.new user, repo
|
||||
return false if tap.installed?
|
||||
ohai "Tapping #{tap}"
|
||||
args = %W[clone #{tap.remote} #{tap.path}]
|
||||
remote = clone_target || "https://github.com/#{tap.user}/homebrew-#{tap.repo}"
|
||||
args = %W[clone #{remote} #{tap.path}]
|
||||
args << "--depth=1" unless ARGV.include?("--full")
|
||||
safe_system "git", *args
|
||||
|
||||
|
||||
@ -7,20 +7,26 @@ class Tap
|
||||
attr_reader :repo
|
||||
attr_reader :name
|
||||
attr_reader :path
|
||||
attr_reader :remote
|
||||
|
||||
def initialize(user, repo, remote=nil)
|
||||
def initialize(user, repo)
|
||||
# we special case homebrew so users don't have to shift in a terminal
|
||||
@user = user == "homebrew" ? "Homebrew" : user
|
||||
@repo = repo
|
||||
@name = "#{@user}/#{@repo}".downcase
|
||||
@path = TAP_DIRECTORY/"#{@user}/homebrew-#{@repo}".downcase
|
||||
if installed?
|
||||
@path.cd do
|
||||
@remote = Utils.popen_read("git", "config", "--get", "remote.origin.url").chomp
|
||||
end
|
||||
|
||||
def remote
|
||||
@remote ||= if installed?
|
||||
if (@path/".git").exist?
|
||||
@path.cd do
|
||||
Utils.popen_read("git", "config", "--get", "remote.origin.url").chomp
|
||||
end
|
||||
else
|
||||
nil
|
||||
end
|
||||
else
|
||||
@remote = remote || "https://github.com/#{@user}/homebrew-#{@repo}"
|
||||
raise TapUnavailableError, name
|
||||
end
|
||||
end
|
||||
|
||||
@ -46,7 +52,8 @@ class Tap
|
||||
end
|
||||
|
||||
def custom_remote?
|
||||
@remote.casecmp("https://github.com/#{@user}/homebrew-#{@repo}") != 0
|
||||
return true unless remote
|
||||
remote.casecmp("https://github.com/#{@user}/homebrew-#{@repo}") != 0
|
||||
end
|
||||
|
||||
def formula_files
|
||||
@ -69,7 +76,7 @@ class Tap
|
||||
"user" => @user,
|
||||
"repo" => @repo,
|
||||
"path" => @path.to_s,
|
||||
"remote" => @remote,
|
||||
"remote" => remote,
|
||||
"installed" => installed?,
|
||||
"official" => official?,
|
||||
"custom_remote" => custom_remote?,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user