From 2cb0ff4578c6163f064b70619e65dd6704ae6db5 Mon Sep 17 00:00:00 2001 From: Jochen Sprickerhof Date: Thu, 26 Nov 2020 17:47:04 +0100 Subject: [PATCH] Support underscore (_) in versionCode Example: https://github.com/ubergeek42/weechat-android/blob/v1.3.1/app/build.gradle.kts#L67 --- fdroidserver/common.py | 2 +- tests/common.TestCase | 13 +++++++++++++ .../com.kunzisoft.testcase/build.gradle | 10 ++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/fdroidserver/common.py b/fdroidserver/common.py index 06970d1f..932ab28a 100644 --- a/fdroidserver/common.py +++ b/fdroidserver/common.py @@ -1520,7 +1520,7 @@ def remove_debuggable_flags(root_dir): os.path.join(root, 'AndroidManifest.xml')) -vcsearch_g = re.compile(r'''\b[Vv]ersionCode\s*=?\s*["']*([0-9]+)["']*''').search +vcsearch_g = re.compile(r'''\b[Vv]ersionCode\s*=?\s*["']*([0-9_]+)["']*''').search vnsearch_g = re.compile(r'''\b[Vv]ersionName\s*=?\s*(["'])((?:(?=(\\?))\3.)*?)\1''').search vnssearch_g = re.compile(r'''\b[Vv]ersionNameSuffix\s*=?\s*(["'])((?:(?=(\\?))\3.)*?)\1''').search psearch_g = re.compile(r'''\b(packageName|applicationId)\s*=*\s*["']([^"']+)["']''').search diff --git a/tests/common.TestCase b/tests/common.TestCase index eff088d6..2677c5f7 100755 --- a/tests/common.TestCase +++ b/tests/common.TestCase @@ -1043,6 +1043,19 @@ class CommonTest(unittest.TestCase): self.assertEqual(('1.0-free', '1', 'com.kunzisoft.fdroidtest.applicationidsuffix'), fdroidserver.common.parse_androidmanifests(paths, app)) + app = fdroidserver.metadata.App() + build = fdroidserver.metadata.Build() + build.gradle = ['underscore'] + app.builds = [build] + app.id = 'com.kunzisoft.fdroidtest.applicationidsuffix.underscore' + paths = [ + os.path.join('source-files', 'com.kunzisoft.testcase', 'build.gradle'), + ] + for path in paths: + self.assertTrue(os.path.isfile(path)) + self.assertEqual(('20180430-underscore', '2018_04_30', 'com.kunzisoft.fdroidtest.applicationidsuffix.underscore'), + fdroidserver.common.parse_androidmanifests(paths, app)) + def test_get_all_gradle_and_manifests(self): a = fdroidserver.common.get_all_gradle_and_manifests(os.path.join('source-files', 'cn.wildfirechat.chat')) paths = [ diff --git a/tests/source-files/com.kunzisoft.testcase/build.gradle b/tests/source-files/com.kunzisoft.testcase/build.gradle index 4319e20d..2753d058 100644 --- a/tests/source-files/com.kunzisoft.testcase/build.gradle +++ b/tests/source-files/com.kunzisoft.testcase/build.gradle @@ -49,6 +49,16 @@ android { // Version code : 1 // Version name : 1.0-free } + underscore { + applicationIdSuffix = ".underscore" + versionCode 2018_04_30 + versionName "20180430-underscore" + buildConfigField "boolean", "FULL_VERSION", "true" + buildConfigField "boolean", "CLOSED_STORE", "true" + // ApplicationId : com.kunzisoft.fdroidtest.applicationidsuffix.underscore + // Version code : 2018_04_30 + // Version name : 20180430-underscore + } } }