Skip to content
Snippets Groups Projects
Commit 4d123e62 authored by Mike McQuaid's avatar Mike McQuaid Committed by GitHub
Browse files

Merge pull request #857 from MikeMcQuaid/update-report-link-more

update-report: also link docs, completions.
parents adaba715 1160d0e3
No related branches found
No related tags found
No related merge requests found
......@@ -88,7 +88,7 @@ module Homebrew
puts if ARGV.include?("--preinstall")
end
link_manpages
link_completions_and_docs
Tap.each(&:link_manpages)
Homebrew.failed = true if ENV["HOMEBREW_UPDATE_FAILED"]
......@@ -163,9 +163,16 @@ module Homebrew
end
end
def link_manpages
def link_completions_and_docs
return if HOMEBREW_PREFIX.to_s == HOMEBREW_REPOSITORY.to_s
link_path_manpages(HOMEBREW_REPOSITORY/"share", "brew update")
command = "brew update"
link_src_dst_dirs(HOMEBREW_REPOSITORY/"etc/bash_completion.d",
HOMEBREW_PREFIX/"etc/bash_completion.d", command)
link_src_dst_dirs(HOMEBREW_REPOSITORY/"share/doc/homebrew",
HOMEBREW_PREFIX/"share/doc/homebrew", command, link_dir: true)
link_src_dst_dirs(HOMEBREW_REPOSITORY/"share/zsh/site-functions",
HOMEBREW_PREFIX/"share/zsh/site-functions", command)
link_path_manpages(HOMEBREW_REPOSITORY/"share", command)
end
end
......
......@@ -589,25 +589,31 @@ def truncate_text_to_approximate_size(s, max_bytes, options = {})
out
end
def link_path_manpages(path, command)
return unless (path/"man").exist?
def link_src_dst_dirs(src_dir, dst_dir, command, link_dir: false)
return unless src_dir.exist?
conflicts = []
(path/"man").find do |src|
next if src.directory?
dst = HOMEBREW_PREFIX/"share"/src.relative_path_from(path)
src_paths = link_dir ? [src_dir] : src_dir.find
src_paths.each do |src|
next if src.directory? && !link_dir
dst = dst_dir.parent/src.relative_path_from(src_dir.parent)
next if dst.symlink? && src == dst.resolved_path
if dst.exist?
conflicts << dst
next
end
dst_dir.parent.mkpath
dst.make_relative_symlink(src)
end
unless conflicts.empty?
onoe <<-EOS.undent
Could not link #{name} manpages to:
Could not link:
#{conflicts.join("\n")}
Please delete these files and run `#{command}`.
EOS
end
end
def link_path_manpages(path, command)
link_src_dst_dirs(path/"man", HOMEBREW_PREFIX/"share/man", command)
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment