update: implement rename_taps_dir_if_necessary in bash
rename_taps_dir_if_necessary must be performed before actual update. Otherwise, it will report that `HOMEBREW_UPDAET_BEFORE<REPO_VAR>` is unset.
This commit is contained in:
parent
ca59d6fbee
commit
fafe8f0f53
@ -44,6 +44,36 @@ git_init_if_necessary() {
|
||||
fi
|
||||
}
|
||||
|
||||
rename_taps_dir_if_necessary() {
|
||||
local tap_dir
|
||||
for tap_dir in "$HOMEBREW_LIBRARY"/Taps/*
|
||||
do
|
||||
[[ -d "$tap_dir/.git" ]] || continue
|
||||
local tap_dir_basename
|
||||
tap_dir_basename="${tap_dir##*/}"
|
||||
if [[ "$tap_dir_basename" = *"-"* ]]
|
||||
then
|
||||
# only replace the *last* dash: yes, tap filenames suck
|
||||
local user
|
||||
local repo
|
||||
user="$(echo "${tap_dir_basename%-*}" | tr "[:upper:]" "[:lower:]")"
|
||||
repo="$(echo "${tap_dir_basename:${#user}+1}" | tr "[:upper:]" "[:lower:]")"
|
||||
mkdir -p "$HOMEBREW_LIBRARY/Taps/$user"
|
||||
mv "$tap_dir", "$HOMEBREW_LIBRARY/Taps/$user/homebrew-$repo"
|
||||
|
||||
if [[ ${#${tap_dir_basename//[^\-]}} -gt 1 ]]
|
||||
then
|
||||
echo "Homebrew changed the structure of Taps like <someuser>/<sometap>." >&2
|
||||
echo "So you may need to rename $HOMEBREW_LIBRARY/Taps/$user/homebrew-$repo manually." >&2
|
||||
fi
|
||||
else
|
||||
echo "Homebrew changed the structure of Taps like <someuser>/<sometap>. " >&2
|
||||
echo "$tap_dir is an incorrect Tap path." >&2
|
||||
echo "So you may need to rename it to $HOMEBREW_LIBRARY/Taps/<someuser>/homebrew-<sometap> manually." >&2
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
repo_var() {
|
||||
local repo_var="$1"
|
||||
if [[ "$repo_var" = "$HOMEBREW_REPOSITORY" ]]
|
||||
@ -247,6 +277,9 @@ EOS
|
||||
|
||||
chdir "$HOMEBREW_REPOSITORY"
|
||||
git_init_if_necessary
|
||||
# rename Taps directories
|
||||
# this procedure will be removed in the future if it seems unnecessary
|
||||
rename_taps_dir_if_necessary
|
||||
|
||||
for DIR in "$HOMEBREW_REPOSITORY" "$HOMEBREW_LIBRARY"/Taps/*/*
|
||||
do
|
||||
|
@ -23,10 +23,6 @@ module Homebrew
|
||||
end
|
||||
report.update(master_updater.report)
|
||||
|
||||
# rename Taps directories
|
||||
# this procedure will be removed in the future if it seems unnecessasry
|
||||
rename_taps_dir_if_necessary
|
||||
|
||||
updated_taps = []
|
||||
Tap.each do |tap|
|
||||
next unless tap.git?
|
||||
@ -106,34 +102,6 @@ module Homebrew
|
||||
`git rev-parse --short #{revision}`.chomp
|
||||
end
|
||||
|
||||
def rename_taps_dir_if_necessary
|
||||
Dir.glob("#{HOMEBREW_LIBRARY}/Taps/*/") do |tapd|
|
||||
begin
|
||||
if File.directory?(tapd + "/.git")
|
||||
tapd_basename = File.basename(tapd)
|
||||
if tapd_basename.include?("-")
|
||||
# only replace the *last* dash: yes, tap filenames suck
|
||||
user, repo = tapd_basename.reverse.sub("-", "/").reverse.split("/")
|
||||
|
||||
FileUtils.mkdir_p("#{HOMEBREW_LIBRARY}/Taps/#{user.downcase}")
|
||||
FileUtils.mv(tapd, "#{HOMEBREW_LIBRARY}/Taps/#{user.downcase}/homebrew-#{repo.downcase}")
|
||||
|
||||
if tapd_basename.count("-") >= 2
|
||||
opoo "Homebrew changed the structure of Taps like <someuser>/<sometap>. "\
|
||||
+ "So you may need to rename #{HOMEBREW_LIBRARY}/Taps/#{user.downcase}/homebrew-#{repo.downcase} manually."
|
||||
end
|
||||
else
|
||||
opoo "Homebrew changed the structure of Taps like <someuser>/<sometap>. "\
|
||||
"#{tapd} is incorrect name format. You may need to rename it like <someuser>/<sometap> manually."
|
||||
end
|
||||
end
|
||||
rescue => ex
|
||||
onoe ex.message
|
||||
next # next tap directory
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def load_tap_migrations
|
||||
load "tap_migrations.rb"
|
||||
rescue LoadError
|
||||
|
Loading…
x
Reference in New Issue
Block a user