aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorXu Cheng2016-01-20 19:41:42 +0800
committerXu Cheng2016-01-21 21:14:55 +0800
commitca59d6fbee26ab5a79663ae6a7f22801ce2f0538 (patch)
treee3f36a0a2ebe772c7005105b87cb436b051e4ec6 /Library
parent9cd2658073f642af615f24133db9f02c0df2bb9a (diff)
downloadbrew-ca59d6fbee26ab5a79663ae6a7f22801ce2f0538.tar.bz2
update: improve repo_var
* use HOMEBREW_REPOSITORY instead of HOMEBREW_PREFIX * better performance: * update-bash: avoid shellout * update-report: use strip_prefix and tr * more robust: * explicitly handle the case when repo is HOMEBREW_REPOSITORY to avoid to handle the trailing backslash. * handle both lower case and upper case when stripping non alpha and digital characters.
Diffstat (limited to 'Library')
-rwxr-xr-xLibrary/Homebrew/cmd/update-bash.sh14
-rw-r--r--Library/Homebrew/cmd/update-report.rb13
2 files changed, 17 insertions, 10 deletions
diff --git a/Library/Homebrew/cmd/update-bash.sh b/Library/Homebrew/cmd/update-bash.sh
index 27cbd32ed..05e7322ba 100755
--- a/Library/Homebrew/cmd/update-bash.sh
+++ b/Library/Homebrew/cmd/update-bash.sh
@@ -45,11 +45,15 @@ git_init_if_necessary() {
}
repo_var() {
- echo "$1" |
- sed -e "s|$HOMEBREW_PREFIX||g" \
- -e 's|Library/Taps/||g' \
- -e 's|[^a-z0-9]|_|g' |
- tr "[:lower:]" "[:upper:]"
+ local repo_var="$1"
+ if [[ "$repo_var" = "$HOMEBREW_REPOSITORY" ]]
+ then
+ repo_var=""
+ else
+ repo_var="${repo_var#"$HOMEBREW_LIBRARY/Taps"}"
+ repo_var="$(echo -n "$repo_var" | tr -C "A-Za-z0-9" "_" | tr "[:lower:]" "[:upper:]")"
+ fi
+ echo "$repo_var"
}
upstream_branch() {
diff --git a/Library/Homebrew/cmd/update-report.rb b/Library/Homebrew/cmd/update-report.rb
index b915f44f2..92bf87daf 100644
--- a/Library/Homebrew/cmd/update-report.rb
+++ b/Library/Homebrew/cmd/update-report.rb
@@ -151,11 +151,14 @@ class Reporter
attr_reader :initial_revision, :current_revision, :repository
def self.repository_variable(repository)
- repository.to_s.
- gsub("#{HOMEBREW_PREFIX}", "").
- gsub("Library/Taps/", "").
- gsub(/[^a-z0-9]/, "_").
- upcase
+ if repository == HOMEBREW_REPOSITORY
+ ""
+ else
+ repository.to_s.
+ strip_prefix(Tap::TAP_DIRECTORY.to_s).
+ tr("^A-Za-z0-9", "_").
+ upcase
+ end
end
def initialize(repository)