aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cmd/update-bash.sh
diff options
context:
space:
mode:
Diffstat (limited to 'Library/Homebrew/cmd/update-bash.sh')
-rwxr-xr-xLibrary/Homebrew/cmd/update-bash.sh33
1 files changed, 33 insertions, 0 deletions
diff --git a/Library/Homebrew/cmd/update-bash.sh b/Library/Homebrew/cmd/update-bash.sh
index 05e7322ba..2c0c3ea9b 100755
--- a/Library/Homebrew/cmd/update-bash.sh
+++ b/Library/Homebrew/cmd/update-bash.sh
@@ -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