| #!/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() |