chiark / gitweb /
Add forceversion/forcevercode options to replace insertversion/insertvercode.
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>
Wed, 15 Feb 2012 18:41:03 +0000 (20:41 +0200)
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>
Thu, 16 Feb 2012 20:58:35 +0000 (22:58 +0200)
Unlike insertversion/insertvercode which accept pattern for old version/code,
which yet need to be prepared, then tested, and with that still named
confusingly, forceversion/forcevercode are boolean-style parameters which,
if specified for build, replace whatever version/code specified in
AndroidManifest.xml with the values from recipe.

common.py

index b020df0a649b1a450b414d1a4761f94de2238826..8fb0f2cdd59d4b179119c1c6e2143908f59f598b 100644 (file)
--- a/common.py
+++ b/common.py
@@ -736,7 +736,7 @@ def prepare_source(vcs, app, build, build_dir, extlib_dir, sdk_path, ndk_path, j
         f.write(props)
         f.close()
 
-    # Insert version code and number into the manifest if necessary...
+    # deprecated, use forceversion/forcevercode instead
     if build.has_key('insertversion'):
         if subprocess.call(['sed','-i','s/' + build['insertversion'] +
             '/' + build['version'] +'/g',
@@ -748,6 +748,18 @@ def prepare_source(vcs, app, build, build_dir, extlib_dir, sdk_path, ndk_path, j
             'AndroidManifest.xml'], cwd=root_dir) !=0:
             raise BuildException("Failed to amend manifest")
 
+    # Insert version code and number into the manifest if necessary...
+    if build.has_key('forceversion'):
+        if subprocess.call(['sed','-r','-i',
+            's/android:versionName="[^"]+"/android:versionName="' + build['version'] + '"/g',
+            'AndroidManifest.xml'], cwd=root_dir) !=0:
+            raise BuildException("Failed to amend manifest")
+    if build.has_key('forcevercode'):
+        if subprocess.call(['sed','-r','-i',
+            's/android:versionCode="[^"]+"/android:versionCode="' + build['vercode'] + '"/g',
+            'AndroidManifest.xml'], cwd=root_dir) !=0:
+            raise BuildException("Failed to amend manifest")
+
     # Delete unwanted file...
     if build.has_key('rm'):
         dest = os.path.join(build_dir, build['rm'])