#!/usr/bin/env python # # Copyright 2016 Google Inc. # # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import os import shutil import subprocess GS_GM_BUCKET = 'chromium-skia-gm' GS_SUBDIR_TMPL_SK_IMAGE = 'skimage/v%s' GS_SUBDIR_TMPL_SKP = 'playback_%s/skps' VERSION_FILE_SK_IMAGE = 'SK_IMAGE_VERSION' VERSION_FILE_SKP = 'SKP_VERSION' def download_dir(skia_dir, tmp_dir, version_file, gs_path_tmpl, dst_dir): # Ensure that the tmp_dir exists. if not os.path.isdir(tmp_dir): os.makedirs(tmp_dir) # Get the expected version. with open(os.path.join(skia_dir, version_file)) as f: expected_version = f.read().rstrip() print 'Expected %s = %s' % (version_file, expected_version) # Get the actually-downloaded version, if we have one. actual_version_file = os.path.join(tmp_dir, version_file) try: with open(actual_version_file) as f: actual_version = f.read().rstrip() except IOError: actual_version = -1 print 'Actual %s = %s' % (version_file, actual_version) # If we don't have the desired version, download it. if actual_version != expected_version: if actual_version != -1: os.remove(actual_version_file) if os.path.isdir(dst_dir): shutil.rmtree(dst_dir) os.makedirs(dst_dir) gs_path = 'gs://%s/%s/*' % (GS_GM_BUCKET, gs_path_tmpl % expected_version) print 'Downloading from %s' % gs_path subprocess.check_call(['gsutil', 'cp', '-R', gs_path, dst_dir]) with open(actual_version_file, 'w') as f: f.write(expected_version)