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.
This commit is contained in:
Xu Cheng 2016-01-20 19:41:42 +08:00
parent 9cd2658073
commit ca59d6fbee
2 changed files with 17 additions and 10 deletions

View File

@ -45,11 +45,15 @@ git_init_if_necessary() {
} }
repo_var() { repo_var() {
echo "$1" | local repo_var="$1"
sed -e "s|$HOMEBREW_PREFIX||g" \ if [[ "$repo_var" = "$HOMEBREW_REPOSITORY" ]]
-e 's|Library/Taps/||g' \ then
-e 's|[^a-z0-9]|_|g' | repo_var=""
tr "[:lower:]" "[:upper:]" 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() { upstream_branch() {

View File

@ -151,11 +151,14 @@ class Reporter
attr_reader :initial_revision, :current_revision, :repository attr_reader :initial_revision, :current_revision, :repository
def self.repository_variable(repository) def self.repository_variable(repository)
repository.to_s. if repository == HOMEBREW_REPOSITORY
gsub("#{HOMEBREW_PREFIX}", ""). ""
gsub("Library/Taps/", ""). else
gsub(/[^a-z0-9]/, "_"). repository.to_s.
upcase strip_prefix(Tap::TAP_DIRECTORY.to_s).
tr("^A-Za-z0-9", "_").
upcase
end
end end
def initialize(repository) def initialize(repository)