bitbake: fetch2: Add parameter handling to uri_replace()

This means that parameters in the source expression are used as part of the
match. Parameters in the destination are used explicitly in the final
url.

(From Poky rev: c465cb0c5c927dd41d96ad6d6fa1566349574bb7)

(Bitbake rev: 3c468ac3ed6d045561afce19b85ae9dd18d87cea)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie 2012-06-20 12:55:11 +00:00
parent bf8501897b
commit 196982a803
1 changed files with 9 additions and 1 deletions

View File

@ -194,7 +194,15 @@ def uri_replace(ud, uri_find, uri_replace, d):
for loc, i in enumerate(uri_find_decoded):
result_decoded[loc] = uri_decoded[loc]
if loc == 5:
continue
# Handle URL parameters
if i:
# Any specified URL parameters must match
for k in uri_replace_decoded[loc]:
if uri_decoded[loc][k] != uri_replace_decoded[loc][k]:
return None
# Overwrite any specified replacement parameters
for k in uri_replace_decoded[loc]:
result_decoded[loc][k] = uri_replace_decoded[loc][k]
elif (re.match(i, uri_decoded[loc])):
if not uri_replace_decoded[loc]:
result_decoded[loc] = ""