diff options
| author | Xu Cheng | 2016-01-20 19:41:42 +0800 |
|---|---|---|
| committer | Xu Cheng | 2016-01-21 21:14:55 +0800 |
| commit | ca59d6fbee26ab5a79663ae6a7f22801ce2f0538 (patch) | |
| tree | e3f36a0a2ebe772c7005105b87cb436b051e4ec6 /Library | |
| parent | 9cd2658073f642af615f24133db9f02c0df2bb9a (diff) | |
| download | brew-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-x | Library/Homebrew/cmd/update-bash.sh | 14 | ||||
| -rw-r--r-- | Library/Homebrew/cmd/update-report.rb | 13 |
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) |
