support/package-builder/StringUtils.py
2820c61a
 import re
 
 class StringUtils(object):
 
45c9260c
     # Opens conditional brackets from
     # (aaa <= 3.1 or bbb) ccc (ddd or fff > 4.5.6)
     # into
     # aaa <= 3.1 ccc ddd
87815216
     def getStringInConditionalBrackets(self, inputstring):
         inputstring = inputstring.strip()
         items = re.findall(r"([(][A-Za-z0-9 %{?}_\.\-<>=]+[)])", inputstring)
45c9260c
         for m in items:
             out = m[m.find("(")+1 : m.find(" or ")].strip()
87815216
             inputstring = inputstring.replace(m, out)
45c9260c
         return inputstring
2820c61a
 
87815216
     def getFileNameFromURL(self, inputstring):
         index = inputstring.rfind("/")
4184f836
         return inputstring[index+1:]
 
87815216
     def getPackageNameFromURL(self, inputstring):
         filename = self.getFileNameFromURL(inputstring)
         m = re.search(r"(zip|mozjs|.+-)([0-9_.]+)(\.source|\.tar|-src|\.zip|\+md|\.tgz).*",
                       filename)
4184f836
         if m is None:
87815216
             print("Unable to parse " + filename)
4184f836
             return inputstring
         name = m.group(1)
         if name.endswith("-"):
             name = name[:-1]
         return name
 
87815216
     def getPackageVersionFromURL(self, inputstring):
         filename = self.getFileNameFromURL(inputstring)
         m = re.search(r"(zip|mozjs|.*-)([0-9_.]+)(\.source|\.tar|-src|\.zip|\+md|\.tgz).*",
                       filename)
4184f836
         if m is None:
87815216
             print("Unable to parse " + filename)
4184f836
             return inputstring
         name = m.group(2)
         return name.replace("_", ".")