xref: /aosp_15_r20/external/cronet/testing/chromoting/download_test_files.py (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker# Copyright 2015 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker
5*6777b538SAndroid Build Coastguard Worker"""A script to download files required for Remoting integration tests from GCS.
6*6777b538SAndroid Build Coastguard Worker
7*6777b538SAndroid Build Coastguard Worker  The script expects 2 parameters:
8*6777b538SAndroid Build Coastguard Worker
9*6777b538SAndroid Build Coastguard Worker    input_files: a file containing the full path in GCS to each file that is to
10*6777b538SAndroid Build Coastguard Worker                be downloaded.
11*6777b538SAndroid Build Coastguard Worker    output_folder: the folder to which the specified files should be downloaded.
12*6777b538SAndroid Build Coastguard Worker
13*6777b538SAndroid Build Coastguard Worker  This scripts expects that its execution is done on a machine where the
14*6777b538SAndroid Build Coastguard Worker  credentials are correctly setup to obtain the required permissions for
15*6777b538SAndroid Build Coastguard Worker  downloading files from the specified GCS buckets.
16*6777b538SAndroid Build Coastguard Worker"""
17*6777b538SAndroid Build Coastguard Worker
18*6777b538SAndroid Build Coastguard Workerimport argparse
19*6777b538SAndroid Build Coastguard Workerimport ntpath
20*6777b538SAndroid Build Coastguard Workerimport os
21*6777b538SAndroid Build Coastguard Workerimport subprocess
22*6777b538SAndroid Build Coastguard Workerimport sys
23*6777b538SAndroid Build Coastguard Worker
24*6777b538SAndroid Build Coastguard Worker
25*6777b538SAndroid Build Coastguard Workerdef main():
26*6777b538SAndroid Build Coastguard Worker
27*6777b538SAndroid Build Coastguard Worker  parser = argparse.ArgumentParser()
28*6777b538SAndroid Build Coastguard Worker  parser.add_argument('-f', '--files',
29*6777b538SAndroid Build Coastguard Worker                      help='File specifying files to be downloaded .')
30*6777b538SAndroid Build Coastguard Worker  parser.add_argument(
31*6777b538SAndroid Build Coastguard Worker      '-o', '--output_folder',
32*6777b538SAndroid Build Coastguard Worker      help='Folder where specified files should be downloaded .')
33*6777b538SAndroid Build Coastguard Worker
34*6777b538SAndroid Build Coastguard Worker  if len(sys.argv) < 3:
35*6777b538SAndroid Build Coastguard Worker    parser.print_help()
36*6777b538SAndroid Build Coastguard Worker    sys.exit(1)
37*6777b538SAndroid Build Coastguard Worker
38*6777b538SAndroid Build Coastguard Worker  args = parser.parse_args()
39*6777b538SAndroid Build Coastguard Worker  if not args.files or not args.output_folder:
40*6777b538SAndroid Build Coastguard Worker    parser.print_help()
41*6777b538SAndroid Build Coastguard Worker    sys.exit(1)
42*6777b538SAndroid Build Coastguard Worker
43*6777b538SAndroid Build Coastguard Worker  # Loop through lines in input file specifying source file locations.
44*6777b538SAndroid Build Coastguard Worker  with open(args.files) as f:
45*6777b538SAndroid Build Coastguard Worker    for line in f:
46*6777b538SAndroid Build Coastguard Worker      # Copy the file to the output folder, with same name as source file.
47*6777b538SAndroid Build Coastguard Worker      output_file = os.path.join(args.output_folder, ntpath.basename(line))
48*6777b538SAndroid Build Coastguard Worker      # Download specified file from GCS.
49*6777b538SAndroid Build Coastguard Worker      cp_cmd = ['gsutil.py', 'cp', line, output_file]
50*6777b538SAndroid Build Coastguard Worker      try:
51*6777b538SAndroid Build Coastguard Worker        subprocess.check_call(cp_cmd)
52*6777b538SAndroid Build Coastguard Worker      except subprocess.CalledProcessError as e:
53*6777b538SAndroid Build Coastguard Worker        print(e.output)
54*6777b538SAndroid Build Coastguard Worker        sys.exit(1)
55*6777b538SAndroid Build Coastguard Worker
56*6777b538SAndroid Build Coastguard Workerif __name__ == '__main__':
57*6777b538SAndroid Build Coastguard Worker  main()
58