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() {
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() {

View File

@ -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)