Taps: cleanup regexps around Taps

Closes Homebrew/homebrew#29139.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
This commit is contained in:
Tsukasa OMOTO 2014-05-14 16:43:52 +09:00 committed by Jack Nagel
parent 858da0063d
commit d1f15e967b
5 changed files with 19 additions and 14 deletions

View File

@ -107,7 +107,7 @@ module Homebrew extend self
end
def tap_args
ARGV.first =~ %r{^([\w-]+)/(homebrew-)?([\w-]+)$}
ARGV.first =~ HOMEBREW_TAP_ARGS_REGEX
raise "Invalid tap name" unless $1 && $3
[$1, $3]
end
@ -122,7 +122,7 @@ module Homebrew extend self
def tap_ref(path)
case path.to_s
when %r{^#{HOMEBREW_LIBRARY}/Taps/([\w-]+)/([\w-]+)/(.+)}
when HOMEBREW_TAP_PATH_REGEX
"#$1/#$2/#{File.basename($3, '.rb')}"
when %r{^#{HOMEBREW_LIBRARY}/Formula/(.+)}
"Homebrew/homebrew/#{File.basename($1, '.rb')}"

View File

@ -218,9 +218,9 @@ class Report < Hash
def tapped_formula_for key
fetch(key, []).select do |path|
case path.relative_path_from(HOMEBREW_REPOSITORY).to_s
when %r{^Library/Taps/([\w-]+/[\w-]+/.*)}
valid_formula_location?($1)
case path.to_s
when HOMEBREW_TAP_PATH_REGEX
valid_formula_location?("#{$1}/#{$2}/#{$3}")
else
false
end
@ -247,11 +247,11 @@ class Report < Hash
def select_formula key
fetch(key, []).map do |path|
case path.relative_path_from(HOMEBREW_REPOSITORY).to_s
when %r{^Library/Formula}
case path.to_s
when Regexp.new(HOMEBREW_LIBRARY + "/Formula")
path.basename(".rb").to_s
when %r{^Library/Taps/([\w-]+)/(homebrew-)?([\w-]+)/(.*)\.rb}
"#$1/#$3/#{path.basename(".rb")}"
when HOMEBREW_TAP_PATH_REGEX
"#$1/#{$2.sub("homebrew-", "")}/#{path.basename(".rb")}"
end
end.compact.sort
end

View File

@ -85,10 +85,7 @@ HOMEBREW_USER_AGENT = "Homebrew #{HOMEBREW_VERSION} (Ruby #{RUBY_VERSION}-#{RUBY
HOMEBREW_CURL_ARGS = '-f#LA'
HOMEBREW_TAP_FORMULA_REGEX = %r{^([\w-]+)/([\w-]+)/([\w-]+)$}
HOMEBREW_TAP_DIR_REGEX = %r{#{HOMEBREW_LIBRARY}/Taps/([\w-]+)/([\w-]+)}
HOMEBREW_TAP_PATH_REGEX = Regexp.new(HOMEBREW_TAP_DIR_REGEX.source \
+ %r{/(.*)}.source)
require 'tap_constants'
module Homebrew extend self
include FileUtils

View File

@ -0,0 +1,8 @@
# match expressions when taps are given as ARGS, e.g. someuser/sometap
HOMEBREW_TAP_ARGS_REGEX = %r{^([\w-]+)/(homebrew-)?([\w-]+)$}
# match taps' formula, e.g. someuser/sometap/someformula
HOMEBREW_TAP_FORMULA_REGEX = %r{^([\w-]+)/([\w-]+)/([\w-]+)$}
# match taps' directory path, e.g. HOMEBREW_LIBRARY/Taps/someuser/sometap
HOMEBREW_TAP_DIR_REGEX = %r{#{HOMEBREW_LIBRARY}/Taps/([\w-]+)/([\w-]+)}
# match taps' formula path, e.g. HOMEBREW_LIBRARY/Taps/someuser/sometap/someformula
HOMEBREW_TAP_PATH_REGEX = Regexp.new(HOMEBREW_TAP_DIR_REGEX.source + %r{/(.*)}.source)

View File

@ -27,7 +27,7 @@ HOMEBREW_WWW = 'http://example.com'
HOMEBREW_CURL_ARGS = '-fsLA'
HOMEBREW_VERSION = '0.9-test'
HOMEBREW_TAP_FORMULA_REGEX = %r{^([\w-]+)/([\w-]+)/([\w-]+)$}
require 'tap_constants'
RUBY_BIN = Pathname.new(RbConfig::CONFIG['bindir'])
RUBY_PATH = RUBY_BIN + RbConfig::CONFIG['ruby_install_name'] + RbConfig::CONFIG['EXEEXT']