chiark / gitweb /
Make comma-separated list parsing code common
authorDaniel Martí <mvdan@mvdan.cc>
Fri, 15 May 2015 14:51:58 +0000 (16:51 +0200)
committerDaniel Martí <mvdan@mvdan.cc>
Fri, 15 May 2015 15:09:21 +0000 (17:09 +0200)
fdroidserver/common.py
fdroidserver/metadata.py

index 985afb4abe2627158bb042ac4a6cf2f38b19cf86..a3275e43ad5527283ad440beef1544ca45094250 100644 (file)
@@ -1154,7 +1154,7 @@ def getsrclib(spec, srclib_dir, srclibpaths=[], subdir=None,
 
     if srclib["Srclibs"]:
         n = 1
-        for lib in srclib["Srclibs"].replace(';', ',').split(','):
+        for lib in metadata.split_list_values(srclib["Srclibs"]):
             s_tuple = None
             for t in srclibpaths:
                 if t[0] == lib:
index 0bf9f6028913e406c354b49e2361b3e62b48025d..fada0eadbc3182a7f714858ef9d4894288ac07e1 100644 (file)
@@ -552,6 +552,12 @@ def fill_build_defaults(build):
     build['ndk_path'] = common.get_ndk_path(build['ndk'])
 
 
+def split_list_values(s):
+    # Port legacy ';' separators
+    l = [v.strip() for v in s.replace(';', ',').split(',')]
+    return [v for v in l if v]
+
+
 # Parse metadata for a single application.
 #
 #  'metafile' - the filename to read. The package id for the application comes
@@ -597,8 +603,7 @@ def parse_metadata(metafile):
                                     .format(p, linedesc))
         t = flagtype(pk)
         if t == 'list':
-            # Port legacy ';' separators
-            pv = [v.strip() for v in pv.replace(';', ',').split(',')]
+            pv = split_list_values(pv)
             if pk == 'gradle':
                 if len(pv) == 1 and pv[0] in ['main', 'yes']:
                     pv = ['yes']
@@ -727,7 +732,7 @@ def parse_metadata(metafile):
             elif fieldtype == 'string':
                 thisinfo[field] = value
             elif fieldtype == 'list':
-                thisinfo[field] = [v.strip() for v in value.replace(';', ',').split(',')]
+                thisinfo[field] = split_list_values(value)
             elif fieldtype == 'build':
                 if value.endswith("\\"):
                     mode = 2