bottle: matching url with options

Closes Homebrew/homebrew-versions#791.

Closes Homebrew/homebrew#39137.

Signed-off-by: Xu Cheng <xucheng@me.com>
This commit is contained in:
Xu Cheng 2015-04-28 15:52:39 +08:00
parent c07da9485f
commit a972565739

View File

@ -257,7 +257,18 @@ module Homebrew
indent = s.slice(/^ +stable do/).length - "stable do".length
string = s.sub!(/^ {#{indent}}stable do(.|\n)+?^ {#{indent}}end\n/m, '\0' + output + "\n")
else
string = s.sub!(/( ((url|sha1|sha256|head|version|mirror) ['"][\S ]+['"]|revision \d+)\n+)+/m, '\0' + output + "\n")
string = s.sub!(/(
\ {2}( # two spaces at the beginning
url\ ['"][\S\ ]+['"] # url with a string
(
,[\S\ ]*$ # url may have options
(\n^\ {3}[\S\ ]+$)* # options can be in multiple lines
)?|
(sha1|sha256|head|version|mirror)\ ['"][\S\ ]+['"]| # specs with a string
revision\ \d+ # revision with a number
)\n+ # multiple empty lines
)+
/mx, '\0' + output + "\n")
end
odie 'Bottle block addition failed!' unless string
end