Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1196)

Unified Diff: build/android/devil/devil_env.py

Issue 1390613002: Revert of [Android] Add a configurable environment for devil/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « build/android/devil/android/sdk/split_select.py ('k') | build/android/devil/utils/lsusb.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/android/devil/devil_env.py
diff --git a/build/android/devil/devil_env.py b/build/android/devil/devil_env.py
deleted file mode 100644
index 1fc022011a8e109d08c196710301d06e03bc4a10..0000000000000000000000000000000000000000
--- a/build/android/devil/devil_env.py
+++ /dev/null
@@ -1,159 +0,0 @@
-# Copyright 2015 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import json
-import logging
-import os
-import sys
-import tempfile
-import threading
-
-# TODO(jbudorick): Update this once dependency_manager moves to catapult.
-_TELEMETRY_PATH = os.path.abspath(os.path.join(
- os.path.dirname(__file__), os.pardir, os.pardir, os.pardir,
- 'tools', 'telemetry'))
-sys.path.append(_TELEMETRY_PATH)
-from catapult_base import dependency_manager # pylint: disable=import-error
-
-
-_DEFAULT_CONFIG_FILES = [
- os.path.abspath(os.path.join(
- os.path.dirname(__file__), os.pardir, 'devil_config.json')),
-]
-
-
-class _Environment(object):
-
- def __init__(self):
- self._config = None
- self._config_init_lock = threading.Lock()
-
- def Initialize(self, configs=None, config_files=None):
- """Initialize devil's environment.
-
- This uses all configurations provided via |configs| and |config_files|
- to determine the locations of devil's dependencies. Configurations should
- all take the form described by catapult_base.dependency_manager.BaseConfig.
- If no configurations are provided, a default one will be used if available.
-
- Args:
- configs: An optional list of dict configurations.
- config_files: An optional list of files to load
- """
-
- # Make sure we only initialize self._config once.
- with self._config_init_lock:
- if self._config is not None:
- return
- self._config = {}
-
- self._InitializeRecursive(configs=configs, config_files=config_files)
-
- def _InitializeRecursive(self, configs=None, config_files=None):
- # This recurses through configs to create temporary files for each and
- # take advantage of context managers to appropriately close those files.
- # TODO(jbudorick): Remove this recursion if/when dependency_manager
- # supports loading configurations directly from a dict.
- if configs:
- with tempfile.NamedTemporaryFile() as next_config_file:
- next_config_file.write(json.dumps(configs[0]))
- next_config_file.flush()
- self._InitializeRecursive(
- configs=configs[1:],
- config_files=[next_config_file.name] + (config_files or []))
- else:
- self._InitializeImpl(config_files)
-
- def _InitializeImpl(self, config_files):
- if not config_files:
- config_files = _DEFAULT_CONFIG_FILES
-
- dm = dependency_manager.DependencyManager(
- [dependency_manager.BaseConfig(c) for c in config_files])
- platform = 'linux_android'
-
- android_sdk_path = dm.FetchPath('android_sdk', platform)
-
- if os.path.exists(android_sdk_path):
- self._config['android_sdk_path'] = android_sdk_path
-
- # Chromium's hooks always download the SDK extras even if they aren't
- # downloading the SDK, so we have to check for the existence of the
- # particular components we care about.
-
- try:
- adb_path = dm.FetchPath('adb_path', platform)
- except dependency_manager.NoPathFoundError:
- adb_path = os.path.join(
- self.android_sdk_path, 'platform-tools', 'adb')
- if os.path.exists(adb_path):
- self._config['adb_path'] = adb_path
-
- build_tools_path = os.path.join(self.android_sdk_path, 'build-tools')
- if os.path.exists(build_tools_path):
- build_tools_contents = os.listdir(build_tools_path)
- if build_tools_contents:
- if len(build_tools_contents) > 1:
- build_tools_contents.sort()
- logging.warning(
- 'More than one set of build-tools provided by the Android SDK:'
- ' %s', ','.join(build_tools_contents))
- logging.warning('Defaulting to %s', build_tools_contents[-1])
- self._config['android_sdk_build_tools_path'] = os.path.join(
- self.android_sdk_path, 'build-tools', build_tools_contents[-1])
-
- try:
- self._config['forwarder_host_path'] = dm.FetchPath(
- 'forwarder_host', platform)
- self._config['forwarder_device_path'] = dm.FetchPath(
- 'forwarder_device', platform)
- except dependency_manager.NoPathFoundError as e:
- logging.warning(str(e))
-
- try:
- self._config['md5sum_host_path'] = dm.FetchPath('md5sum_host', platform)
- self._config['md5sum_device_path'] = dm.FetchPath(
- 'md5sum_device', platform)
- except dependency_manager.NoPathFoundError as e:
- logging.warning(str(e))
-
- try:
- self._config['pymock_path'] = dm.FetchPath('pymock', platform)
- except dependency_manager.NoPathFoundError as e:
- logging.warning(str(e))
-
- def __getattr__(self, name):
- if self._config is None:
- self.Initialize()
-
- if name not in self._config:
- raise AttributeError('devil environment has no %r attribute' % name)
-
- return self._config[name]
-
-
-config = _Environment()
-
-
-def GenerateDynamicConfig(deps):
- """Generate a configuration dict from the provided deps dict.
-
- Args:
- deps: A dict mapping dependency names to lists of local files.
- Returns:
- A BaseConfig-compatible dict.
- """
- return {
- 'config_type': 'BaseConfig',
- 'dependencies': {
- k: {
- 'file_info': {
- 'linux_android': {
- 'local_paths': v
- }
- }
- } for k, v in deps.iteritems()
- }
- }
-
« no previous file with comments | « build/android/devil/android/sdk/split_select.py ('k') | build/android/devil/utils/lsusb.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698