aboutsummaryrefslogtreecommitdiff
path: root/tools/inject_version_in_manifest.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/inject_version_in_manifest.py')
-rwxr-xr-xtools/inject_version_in_manifest.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/tools/inject_version_in_manifest.py b/tools/inject_version_in_manifest.py
new file mode 100755
index 000000000..09a929ef1
--- /dev/null
+++ b/tools/inject_version_in_manifest.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python
+
+import sys
+import xml.etree.ElementTree as ET
+import xml.dom.minidom
+
+def parse_inject_manifest(filename, versionCode, versionName):
+ manifest = xml.dom.minidom.parse(filename)
+ manifest.documentElement.setAttribute("android:versionCode", versionCode)
+ manifest.documentElement.setAttribute("android:versionName", versionName)
+ useSdk = manifest.createElement("uses-sdk")
+ useSdk.setAttribute("android:minSdkVersion", "14")
+ useSdk.setAttribute("android:targetSdkVersion", "23")
+ manifest.documentElement.appendChild(useSdk)
+ return manifest.toprettyxml(" ", "")
+
+def get_version_from_build_gradle(filename):
+ versionCode = ''
+ versionName = ''
+ for sline in (line.strip() for line in open('WordPress/build.gradle').readlines()):
+ if sline.startswith("versionName"):
+ versionName = sline.split()[1].replace('"', '')
+ if sline.startswith("versionCode"):
+ versionCode = sline.split()[1]
+ return versionCode, versionName
+
+def main():
+ if len(sys.argv) != 3:
+ print("Read versionCode and versionName in a build.gradle and inject it in a AndroidManifest.xml")
+ print("Usage: %s AndroidManifest.xml build.gradle" % sys.argv[0])
+ print("Example: %s AndroidManifest.xml build.gradle" % sys.argv[0])
+ sys.exit(1)
+ versionCode, versionName = get_version_from_build_gradle(sys.argv[2])
+ print(parse_inject_manifest(sys.argv[1], versionCode, versionName))
+
+if __name__ == "__main__":
+ main()