Index: third_party/mojo/src/mojo/public/tools/mojom_fetcher/pylib/fetcher/repository.py |
diff --git a/third_party/mojo/src/mojo/public/tools/mojom_fetcher/pylib/fetcher/repository.py b/third_party/mojo/src/mojo/public/tools/mojom_fetcher/pylib/fetcher/repository.py |
deleted file mode 100644 |
index 8d9f0515af0e859cbecae88545e591b9bee1a0f3..0000000000000000000000000000000000000000 |
--- a/third_party/mojo/src/mojo/public/tools/mojom_fetcher/pylib/fetcher/repository.py |
+++ /dev/null |
@@ -1,115 +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 os |
- |
-from fetcher.dependency import Dependency |
-from fetcher.mojom_directory import MojomDirectory |
-from fetcher.mojom_file import MojomFile |
-from mojom.parse.parser import Parse |
- |
- |
-class Repository(object): |
- """Repository represents a code repository on the local disc.""" |
- def __init__(self, root_dir, external_dir): |
- """root_dir represents the root of the repository; |
- external_dir is the relative path of the external directory within the |
- repository (so, relative to root_dir) |
- """ |
- self._root_dir = os.path.normpath(root_dir) |
- self._external_dir = external_dir |
- |
- def get_repo_root_directory(self): |
- return self._root_dir |
- |
- def get_external_directory(self): |
- return os.path.join(self._root_dir, self._external_dir) |
- |
- def get_external_suffix(self): |
- return self._external_dir |
- |
- def _os_walk(self, root_directory): |
- # This method is included for dependency injection |
- return os.walk(root_directory) |
- |
- def _open(self, filename): |
- # This method is included for dependency injection |
- return open(filename) |
- |
- def _get_all_mojom_in_directory(self, root_directory): |
- mojoms = [] |
- for dirname, _, files in self._os_walk(root_directory): |
- for f in files: |
- if f.endswith(".mojom"): |
- mojoms.append(os.path.join(dirname,f)) |
- return mojoms |
- |
- def _resolve_dependencies(self, dependencies, mojoms): |
- """Resolve dependencies between discovered mojoms, so we know which are the |
- missing ones.""" |
- missing = [] |
- for dependency in dependencies: |
- found = False |
- for search_path in dependency.get_search_path_for_dependency(): |
- if os.path.normpath( |
- os.path.join(search_path, |
- dependency.get_imported())) in mojoms: |
- found = True |
- break |
- if not found: |
- missing.append(dependency) |
- return missing |
- |
- def get_missing_dependencies(self): |
- """get_missing_dependencies returns a set of dependencies that are required |
- by mojoms in this repository but not available. |
- """ |
- # Update the list of available mojoms in this repository. |
- mojoms = set(self._get_all_mojom_in_directory(self._root_dir)) |
- |
- # Find all declared dependencies |
- needed_deps = set([]) |
- for mojom in mojoms: |
- with self._open(mojom) as f: |
- source = f.read() |
- tree = Parse(source, mojom) |
- for dep in tree.import_list: |
- needed_deps.add(Dependency(self, dep.filename, dep.import_filename)) |
- |
- missing_deps = self._resolve_dependencies(needed_deps, mojoms) |
- |
- return missing_deps |
- |
- def get_external_urls(self): |
- """Get all external mojom files in this repository, by urls (without |
- scheme).""" |
- mojoms = set(self._get_all_mojom_in_directory( |
- self.get_external_directory())) |
- urls = [] |
- for mojom in mojoms: |
- urls.append(os.path.relpath(mojom, self.get_external_directory())) |
- return urls |
- |
- def get_all_external_mojom_directories(self): |
- """Get all external directories populated with their mojom files.""" |
- mojoms = self._get_all_mojom_in_directory(self.get_external_directory()) |
- directories = {} |
- for mojom_path in mojoms: |
- directory_path = os.path.dirname(mojom_path) |
- directory = directories.setdefault( |
- directory_path, MojomDirectory(directory_path)) |
- with self._open(mojom_path) as f: |
- source = f.read() |
- tree = Parse(source, mojom_path) |
- mojom = MojomFile(self, mojom_path) |
- directory.add_mojom(mojom) |
- for dep in tree.import_list: |
- mojom.add_dependency(dep.import_filename) |
- return directories.values() |
- |
- |
- |
- |
- |
- |