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