OLD | NEW |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 """Handles generating profiles and transferring them to/from mobile devices.""" | 5 """Handles generating profiles and transferring them to/from mobile devices.""" |
6 | 6 |
7 import logging | 7 import logging |
8 import optparse | 8 import optparse |
9 import os | 9 import os |
10 import shutil | 10 import shutil |
11 import stat | 11 import stat |
12 import sys | 12 import sys |
13 import tempfile | 13 import tempfile |
14 | 14 |
15 from profile_creators import profile_extender | 15 from profile_creators import profile_extender |
16 from telemetry.core import browser_options | 16 from telemetry.core import browser_options |
17 from telemetry.core import discover | 17 from telemetry.core import discover |
18 from telemetry.core import util | 18 from telemetry.core import util |
19 from telemetry.user_story import user_story_runner | 19 from telemetry.internal import story_runner |
20 | 20 |
21 | 21 |
22 def _DiscoverProfileExtenderClasses(): | 22 def _DiscoverProfileExtenderClasses(): |
23 profile_extenders_dir = os.path.abspath(os.path.join(util.GetBaseDir(), | 23 profile_extenders_dir = os.path.abspath(os.path.join(util.GetBaseDir(), |
24 os.pardir, 'perf', 'profile_creators')) | 24 os.pardir, 'perf', 'profile_creators')) |
25 base_dir = os.path.abspath(os.path.join(profile_extenders_dir, os.pardir)) | 25 base_dir = os.path.abspath(os.path.join(profile_extenders_dir, os.pardir)) |
26 | 26 |
27 profile_extenders_unfiltered = discover.DiscoverClasses( | 27 profile_extenders_unfiltered = discover.DiscoverClasses( |
28 profile_extenders_dir, base_dir, profile_extender.ProfileExtender) | 28 profile_extenders_dir, base_dir, profile_extender.ProfileExtender) |
29 | 29 |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
87 shutil.rmtree(out_path) | 87 shutil.rmtree(out_path) |
88 | 88 |
89 shutil.copytree(temp_output_directory, out_path, ignore=_IsPseudoFile) | 89 shutil.copytree(temp_output_directory, out_path, ignore=_IsPseudoFile) |
90 shutil.rmtree(temp_output_directory) | 90 shutil.rmtree(temp_output_directory) |
91 sys.stderr.write("SUCCESS: Generated profile copied to: '%s'.\n" % out_path) | 91 sys.stderr.write("SUCCESS: Generated profile copied to: '%s'.\n" % out_path) |
92 | 92 |
93 return 0 | 93 return 0 |
94 | 94 |
95 | 95 |
96 def AddCommandLineArgs(parser): | 96 def AddCommandLineArgs(parser): |
97 user_story_runner.AddCommandLineArgs(parser) | 97 story_runner.AddCommandLineArgs(parser) |
98 | 98 |
99 profile_extenders = _DiscoverProfileExtenderClasses().keys() | 99 profile_extenders = _DiscoverProfileExtenderClasses().keys() |
100 legal_profile_creators = '|'.join(profile_extenders) | 100 legal_profile_creators = '|'.join(profile_extenders) |
101 group = optparse.OptionGroup(parser, 'Profile generation options') | 101 group = optparse.OptionGroup(parser, 'Profile generation options') |
102 group.add_option('--profile-type-to-generate', | 102 group.add_option('--profile-type-to-generate', |
103 dest='profile_type_to_generate', | 103 dest='profile_type_to_generate', |
104 default=None, | 104 default=None, |
105 help='Type of profile to generate. ' | 105 help='Type of profile to generate. ' |
106 'Supported values: %s' % legal_profile_creators) | 106 'Supported values: %s' % legal_profile_creators) |
107 parser.add_option_group(group) | 107 parser.add_option_group(group) |
108 | 108 |
109 | 109 |
110 def ProcessCommandLineArgs(parser, args): | 110 def ProcessCommandLineArgs(parser, args): |
111 user_story_runner.ProcessCommandLineArgs(parser, args) | 111 story_runner.ProcessCommandLineArgs(parser, args) |
112 | 112 |
113 if not args.profile_type_to_generate: | 113 if not args.profile_type_to_generate: |
114 parser.error("Must specify --profile-type-to-generate option.") | 114 parser.error("Must specify --profile-type-to-generate option.") |
115 | 115 |
116 profile_extenders = _DiscoverProfileExtenderClasses().keys() | 116 profile_extenders = _DiscoverProfileExtenderClasses().keys() |
117 if args.profile_type_to_generate not in profile_extenders: | 117 if args.profile_type_to_generate not in profile_extenders: |
118 legal_profile_creators = '|'.join(profile_extenders) | 118 legal_profile_creators = '|'.join(profile_extenders) |
119 parser.error("Invalid profile type, legal values are: %s." % | 119 parser.error("Invalid profile type, legal values are: %s." % |
120 legal_profile_creators) | 120 legal_profile_creators) |
121 | 121 |
(...skipping 13 matching lines...) Expand all Loading... |
135 "%%prog <--profile-type-to-generate=...> <--browser=...> <--output-dir>") | 135 "%%prog <--profile-type-to-generate=...> <--browser=...> <--output-dir>") |
136 AddCommandLineArgs(parser) | 136 AddCommandLineArgs(parser) |
137 _, _ = parser.parse_args() | 137 _, _ = parser.parse_args() |
138 ProcessCommandLineArgs(parser, options) | 138 ProcessCommandLineArgs(parser, options) |
139 | 139 |
140 # Generate profile. | 140 # Generate profile. |
141 profile_extenders = _DiscoverProfileExtenderClasses() | 141 profile_extenders = _DiscoverProfileExtenderClasses() |
142 profile_extender_class = profile_extenders[options.profile_type_to_generate] | 142 profile_extender_class = profile_extenders[options.profile_type_to_generate] |
143 return GenerateProfiles(profile_extender_class, | 143 return GenerateProfiles(profile_extender_class, |
144 options.profile_type_to_generate, options) | 144 options.profile_type_to_generate, options) |
OLD | NEW |