2016-02-18 16:05:48 +00:00
|
|
|
#!/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
|
2016-02-29 13:57:31 +00:00
|
|
|
import shutil
|
2016-02-18 16:05:48 +00:00
|
|
|
import subprocess
|
|
|
|
|
2016-02-29 13:57:31 +00:00
|
|
|
|
2016-02-18 16:05:48 +00:00
|
|
|
GS_GM_BUCKET = 'chromium-skia-gm'
|
|
|
|
|
2016-02-29 13:57:31 +00:00
|
|
|
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'
|
|
|
|
|
2016-02-18 16:05:48 +00:00
|
|
|
|
2016-02-29 13:57:31 +00:00
|
|
|
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)
|