chiark / gitweb /
Improve checkupdates regex, support quotes better for build.gradle
authorDaniel Martí <mvdan@mvdan.cc>
Tue, 7 Jan 2014 09:04:11 +0000 (10:04 +0100)
committerDaniel Martí <mvdan@mvdan.cc>
Thu, 9 Jan 2014 15:23:48 +0000 (16:23 +0100)
fdroidserver/checkupdates.py
fdroidserver/common.py

index eff43ff4039ad18cebdd3e639c1b6fcb609b0b05..d7c89eec374ec7d532e2bc1ebbc30f0acdf0316f 100644 (file)
@@ -197,7 +197,11 @@ def check_repomanifest(app, branch=None):
         if not vercode:
             return (None,"Couldn't find latest version code")
 
-        return (version, str(int(vercode)))
+        vercode = str(int(vercode))
+
+        print "Manifest exists. Found version %s (%s)" % (version, vercode)
+
+        return (version, vercode)
 
     except BuildException as be:
         msg = "Could not scan app %s due to BuildException: %s" % (app['id'], be)
index f648ef7d63fb71a0cb6b33e5895113786926ba78..6b82a70172936125599e7311f428ca87e0a2ed91 100644 (file)
@@ -683,9 +683,9 @@ def parse_androidmanifests(paths):
     vnsearch = re.compile(r'.*android:versionName="([^"]+?)".*').search
     psearch = re.compile(r'.*package="([^"]+)".*').search
 
-    vcsearch_g = re.compile(r'.*versionCode[ =]*([0-9]+?)[^\d].*').search
-    vnsearch_g = re.compile(r'.*versionName[ =]*"([^"]+?)".*').search
-    psearch_g = re.compile(r'.*packageName[ =]*"([^"]+)".*').search
+    vcsearch_g = re.compile(r'.*versionCode[ ]*=[ ]*["\']*([0-9]+?)[^\d].*').search
+    vnsearch_g = re.compile(r'.*versionName[ ]*=[ ]*(["\'])((?:(?=(\\?))\3.)*?)\1.*').search
+    psearch_g = re.compile(r'.*packageName[ ]*=[ ]*["\']([^"]+)["\'].*').search
 
     max_version = None
     max_vercode = None
@@ -713,7 +713,7 @@ def parse_androidmanifests(paths):
                 else:
                     matches = vnsearch(line)
                 if matches:
-                    version = matches.group(1)
+                    version = matches.group(2 if gradle else 1)
             if not vercode:
                 if gradle:
                     matches = vcsearch_g(line)