blob: 57a04afbab4180fdb55c2955ea01e9739fda53ec [file] [log] [blame]
#!/usr/bin/env python
# Copyright 2018 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import os
import sys
import urllib2
import cStringIO
import zipfile
# Path constants. (All of these should be absolute paths.)
THIS_DIR = os.path.abspath(os.path.dirname(__file__))
FLUTTER_DIR = os.path.abspath(os.path.join(THIS_DIR, '..', '..', '..'))
INSTALL_DIR = os.path.join(FLUTTER_DIR, 'third_party', 'android_support')
def GetInstalledVersion(version_stamp):
version_file = os.path.join(INSTALL_DIR, version_stamp)
if not os.path.exists(version_file):
return None
with open(version_file) as f:
return f.read().strip()
def main():
# Read latest version.
version_stamp = 'VERSION_SUPPORT_FRAGMENT'
version = ''
with open(os.path.join(THIS_DIR, version_stamp)) as f:
version = f.read().strip()
# Return if installed binaries are up to date.
if version == GetInstalledVersion(version_stamp):
return
# Download the AAR and extract the JAR.
aar = urllib2.urlopen(version).read()
aar_zip = zipfile.ZipFile(cStringIO.StringIO(aar))
if not os.path.exists(INSTALL_DIR):
os.mkdir(INSTALL_DIR)
with open(os.path.join(INSTALL_DIR, 'android_support_fragment.jar'), 'w') as f:
f.write(aar_zip.read('classes.jar'))
# Write version as the last step.
with open(os.path.join(INSTALL_DIR, version_stamp), 'w') as f:
f.write('%s\n' % version)
if __name__ == '__main__':
sys.exit(main())