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:
		@@ -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)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user