euscanwww: Removing useless stuff while creating watch tag

* Removing useless options or actions
* Fixing handling of substitution regex

Signed-off-by: volpino <fox91@anche.no>
This commit is contained in:
volpino 2012-07-25 10:19:27 +02:00 committed by Corentin Chary
parent e2890c6364
commit 9f164ed22c
2 changed files with 21 additions and 7 deletions

View File

@ -166,16 +166,26 @@ def patch_metadata(metadata_path, watch_data, diff=False):
watch_line watch_line
) )
attrs_quote, attrs, url = result.groups() opts_quote, opts, url = result.groups()
attrs = attrs_quote or attrs opts = opts_quote or opts
if attrs: if opts:
attrs = [x.replace('=', '="') + '"' for x in attrs.split(",")] # clean opts, skip useless ones
attrs = " ".join(attrs) valid = ("uversionmangle", "versionmangle", "downloadurlmangle")
cleaned_opts = []
for opt in opts.split(","):
opt_name, opt_value = opt.split("=")
if opt_name in valid:
cleaned_opts.append('%s="%s"' % (opt_name, opt_value))
opts = " ".join(cleaned_opts)
if attrs: # clean url from useless stuff. Just keep <base> [<filepattern>]
url_search = re.search(r"^([^\s]+)(?: ([^\s]*\([^\s]+\)[^\s]*))?", url)
url = " ".join([x for x in url_search.groups() if x is not None])
if opts:
watch_tag = '%s<watch version="%s" %s>%s</watch>' % \ watch_tag = '%s<watch version="%s" %s>%s</watch>' % \
(indent, version, attrs, url) (indent, version, opts, url)
else: else:
watch_tag = '%s<watch version="%s">%s</watch>' % \ watch_tag = '%s<watch version="%s">%s</watch>' % \
(indent, version, url) (indent, version, url)

View File

@ -26,7 +26,11 @@ def can_handle(pkg, url):
def parse_mangles(mangles, string): def parse_mangles(mangles, string):
for mangle in mangles: for mangle in mangles:
# convert regex from perl format to python format # convert regex from perl format to python format
# there are some regex in this format: s/pattern/replacement/
m = re.match(r"s/(.*[^\\])/(.*)/", mangle) m = re.match(r"s/(.*[^\\])/(.*)/", mangle)
if not m:
# or in this format s|pattern|replacement|
m = re.match(r"s\|(.*[^\\])\|(.*)\|", mangle)
pattern, repl = m.groups() pattern, repl = m.groups()
repl = re.sub(r"\$(\d+)", r"\\\1", repl) repl = re.sub(r"\$(\d+)", r"\\\1", repl)
string = re.sub(pattern, repl, string) string = re.sub(pattern, repl, string)