mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
#!/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())
|