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"
|
info += "Not installed"
|
||||||
end
|
end
|
||||||
puts info
|
puts info
|
||||||
puts "From: #{tap.remote}"
|
puts "From: #{tap.remote.nil? ? "N/A" : tap.remote}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -14,10 +14,11 @@ module Homebrew
|
|||||||
end
|
end
|
||||||
|
|
||||||
def install_tap user, repo, clone_target=nil
|
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?
|
return false if tap.installed?
|
||||||
ohai "Tapping #{tap}"
|
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")
|
args << "--depth=1" unless ARGV.include?("--full")
|
||||||
safe_system "git", *args
|
safe_system "git", *args
|
||||||
|
|
||||||
|
|||||||
@ -7,20 +7,26 @@ class Tap
|
|||||||
attr_reader :repo
|
attr_reader :repo
|
||||||
attr_reader :name
|
attr_reader :name
|
||||||
attr_reader :path
|
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
|
# we special case homebrew so users don't have to shift in a terminal
|
||||||
@user = user == "homebrew" ? "Homebrew" : user
|
@user = user == "homebrew" ? "Homebrew" : user
|
||||||
@repo = repo
|
@repo = repo
|
||||||
@name = "#{@user}/#{@repo}".downcase
|
@name = "#{@user}/#{@repo}".downcase
|
||||||
@path = TAP_DIRECTORY/"#{@user}/homebrew-#{@repo}".downcase
|
@path = TAP_DIRECTORY/"#{@user}/homebrew-#{@repo}".downcase
|
||||||
if installed?
|
end
|
||||||
|
|
||||||
|
def remote
|
||||||
|
@remote ||= if installed?
|
||||||
|
if (@path/".git").exist?
|
||||||
@path.cd do
|
@path.cd do
|
||||||
@remote = Utils.popen_read("git", "config", "--get", "remote.origin.url").chomp
|
Utils.popen_read("git", "config", "--get", "remote.origin.url").chomp
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@remote = remote || "https://github.com/#{@user}/homebrew-#{@repo}"
|
nil
|
||||||
|
end
|
||||||
|
else
|
||||||
|
raise TapUnavailableError, name
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -46,7 +52,8 @@ class Tap
|
|||||||
end
|
end
|
||||||
|
|
||||||
def custom_remote?
|
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
|
end
|
||||||
|
|
||||||
def formula_files
|
def formula_files
|
||||||
@ -69,7 +76,7 @@ class Tap
|
|||||||
"user" => @user,
|
"user" => @user,
|
||||||
"repo" => @repo,
|
"repo" => @repo,
|
||||||
"path" => @path.to_s,
|
"path" => @path.to_s,
|
||||||
"remote" => @remote,
|
"remote" => remote,
|
||||||
"installed" => installed?,
|
"installed" => installed?,
|
||||||
"official" => official?,
|
"official" => official?,
|
||||||
"custom_remote" => custom_remote?,
|
"custom_remote" => custom_remote?,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user