1*c8dee2aaSAndroid Build Coastguard Worker#!/usr/bin/env python 2*c8dee2aaSAndroid Build Coastguard Worker# 3*c8dee2aaSAndroid Build Coastguard Worker# Copyright 2016 Google Inc. 4*c8dee2aaSAndroid Build Coastguard Worker# 5*c8dee2aaSAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 6*c8dee2aaSAndroid Build Coastguard Worker# found in the LICENSE file. 7*c8dee2aaSAndroid Build Coastguard Worker 8*c8dee2aaSAndroid Build Coastguard Worker 9*c8dee2aaSAndroid Build Coastguard Worker"""Create the asset.""" 10*c8dee2aaSAndroid Build Coastguard Worker 11*c8dee2aaSAndroid Build Coastguard Worker 12*c8dee2aaSAndroid Build Coastguard Workerimport argparse 13*c8dee2aaSAndroid Build Coastguard Workerimport subprocess 14*c8dee2aaSAndroid Build Coastguard Workerimport os 15*c8dee2aaSAndroid Build Coastguard Workerimport shutil 16*c8dee2aaSAndroid Build Coastguard Worker 17*c8dee2aaSAndroid Build Coastguard Worker 18*c8dee2aaSAndroid Build Coastguard WorkerFILE_DIR = os.path.dirname(os.path.abspath(__file__)) 19*c8dee2aaSAndroid Build Coastguard WorkerINFRA_BOTS_DIR = os.path.realpath(os.path.join(FILE_DIR, os.pardir, os.pardir)) 20*c8dee2aaSAndroid Build Coastguard WorkerSVG_TOOLS = os.path.join(INFRA_BOTS_DIR, os.pardir, os.pardir, 'tools', 'svg') 21*c8dee2aaSAndroid Build Coastguard WorkerSVG_GS_BUCKET = 'gs://skia-svgs' 22*c8dee2aaSAndroid Build Coastguard Worker 23*c8dee2aaSAndroid Build Coastguard Worker 24*c8dee2aaSAndroid Build Coastguard Workerdef create_asset(target_dir): 25*c8dee2aaSAndroid Build Coastguard Worker """Create the asset.""" 26*c8dee2aaSAndroid Build Coastguard Worker target_dir = os.path.realpath(target_dir) 27*c8dee2aaSAndroid Build Coastguard Worker target_svg_dir = os.path.join(target_dir, 'svg') 28*c8dee2aaSAndroid Build Coastguard Worker target_image_dir = os.path.join(target_dir, 'images') 29*c8dee2aaSAndroid Build Coastguard Worker 30*c8dee2aaSAndroid Build Coastguard Worker if not os.path.exists(target_svg_dir): 31*c8dee2aaSAndroid Build Coastguard Worker os.makedirs(target_svg_dir) 32*c8dee2aaSAndroid Build Coastguard Worker 33*c8dee2aaSAndroid Build Coastguard Worker if not os.path.exists(target_image_dir): 34*c8dee2aaSAndroid Build Coastguard Worker os.makedirs(target_image_dir) 35*c8dee2aaSAndroid Build Coastguard Worker 36*c8dee2aaSAndroid Build Coastguard Worker # Download the SVGs specified in tools/svg/svgs.txt 37*c8dee2aaSAndroid Build Coastguard Worker download_svgs_cmd = [ 38*c8dee2aaSAndroid Build Coastguard Worker 'python', os.path.join(SVG_TOOLS, 'svg_downloader.py'), 39*c8dee2aaSAndroid Build Coastguard Worker '--output_dir', target_svg_dir, 40*c8dee2aaSAndroid Build Coastguard Worker '--input_file', os.path.join(SVG_TOOLS, 'svgs.txt'), 41*c8dee2aaSAndroid Build Coastguard Worker ] 42*c8dee2aaSAndroid Build Coastguard Worker subprocess.check_call(download_svgs_cmd) 43*c8dee2aaSAndroid Build Coastguard Worker 44*c8dee2aaSAndroid Build Coastguard Worker # Download the SVGs specified in tools/svg/svgs_parse_only.txt with a prefix. 45*c8dee2aaSAndroid Build Coastguard Worker download_svgs_parse_only_cmd = [ 46*c8dee2aaSAndroid Build Coastguard Worker 'python', os.path.join(SVG_TOOLS, 'svg_downloader.py'), 47*c8dee2aaSAndroid Build Coastguard Worker '--output_dir', target_svg_dir, 48*c8dee2aaSAndroid Build Coastguard Worker '--input_file', os.path.join(SVG_TOOLS, 'svgs_parse_only.txt'), 49*c8dee2aaSAndroid Build Coastguard Worker '--prefix', 'svgparse_', 50*c8dee2aaSAndroid Build Coastguard Worker ] 51*c8dee2aaSAndroid Build Coastguard Worker subprocess.check_call(download_svgs_parse_only_cmd) 52*c8dee2aaSAndroid Build Coastguard Worker 53*c8dee2aaSAndroid Build Coastguard Worker # Download the image resources specified in tools/svg/svg_images.txt 54*c8dee2aaSAndroid Build Coastguard Worker download_images_cmd = [ 55*c8dee2aaSAndroid Build Coastguard Worker 'python', os.path.join(SVG_TOOLS, 'svg_downloader.py'), 56*c8dee2aaSAndroid Build Coastguard Worker '--output_dir', target_image_dir, 57*c8dee2aaSAndroid Build Coastguard Worker '--input_file', os.path.join(SVG_TOOLS, 'svg_images.txt'), 58*c8dee2aaSAndroid Build Coastguard Worker '--keep_common_prefix', 59*c8dee2aaSAndroid Build Coastguard Worker ] 60*c8dee2aaSAndroid Build Coastguard Worker subprocess.check_call(download_images_cmd) 61*c8dee2aaSAndroid Build Coastguard Worker 62*c8dee2aaSAndroid Build Coastguard Worker # Download SVGs from Google storage. 63*c8dee2aaSAndroid Build Coastguard Worker # The Google storage bucket will either contain private SVGs or SVGs which we 64*c8dee2aaSAndroid Build Coastguard Worker # cannot download over the internet using svg_downloader.py. 65*c8dee2aaSAndroid Build Coastguard Worker for skbug in ['skbug4713', 'skbug6918', 'skbug11244']: 66*c8dee2aaSAndroid Build Coastguard Worker subprocess.check_call([ 67*c8dee2aaSAndroid Build Coastguard Worker 'gsutil', '-m', 'cp', os.path.join(SVG_GS_BUCKET, skbug, '*'), 68*c8dee2aaSAndroid Build Coastguard Worker target_svg_dir 69*c8dee2aaSAndroid Build Coastguard Worker ]) 70*c8dee2aaSAndroid Build Coastguard Worker 71*c8dee2aaSAndroid Build Coastguard Worker 72*c8dee2aaSAndroid Build Coastguard Workerdef main(): 73*c8dee2aaSAndroid Build Coastguard Worker parser = argparse.ArgumentParser() 74*c8dee2aaSAndroid Build Coastguard Worker parser.add_argument('--target_dir', '-t', required=True) 75*c8dee2aaSAndroid Build Coastguard Worker args = parser.parse_args() 76*c8dee2aaSAndroid Build Coastguard Worker create_asset(args.target_dir) 77*c8dee2aaSAndroid Build Coastguard Worker 78*c8dee2aaSAndroid Build Coastguard Worker 79*c8dee2aaSAndroid Build Coastguard Workerif __name__ == '__main__': 80*c8dee2aaSAndroid Build Coastguard Worker main() 81