| Index: sdk/lib/_internal/pub_generated/lib/src/source/path.dart
|
| diff --git a/sdk/lib/_internal/pub/lib/src/source/path.dart b/sdk/lib/_internal/pub_generated/lib/src/source/path.dart
|
| similarity index 50%
|
| copy from sdk/lib/_internal/pub/lib/src/source/path.dart
|
| copy to sdk/lib/_internal/pub_generated/lib/src/source/path.dart
|
| index fc13cc7c9ad8bfd1c08c24d93e22c8945415b5cc..017b8d4055501a9c3876d7d010bc8bda396148bd 100644
|
| --- a/sdk/lib/_internal/pub/lib/src/source/path.dart
|
| +++ b/sdk/lib/_internal/pub_generated/lib/src/source/path.dart
|
| @@ -1,119 +1,73 @@
|
| -// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
|
| -// for details. All rights reserved. Use of this source code is governed by a
|
| -// BSD-style license that can be found in the LICENSE file.
|
| -
|
| library pub.source.path;
|
| -
|
| import 'dart:async';
|
| -
|
| import 'package:path/path.dart' as p;
|
| -
|
| import '../exceptions.dart';
|
| import '../io.dart';
|
| import '../package.dart';
|
| import '../pubspec.dart';
|
| import '../source.dart';
|
| import '../utils.dart';
|
| -
|
| -/// A package [Source] that gets packages from a given local file path.
|
| class PathSource extends Source {
|
| - /// Returns a valid description for a reference to a package at [path].
|
| static describePath(String path) {
|
| return {
|
| "path": path,
|
| "relative": p.isRelative(path)
|
| };
|
| }
|
| -
|
| - /// Given a valid path reference description, returns the file path it
|
| - /// describes.
|
| - ///
|
| - /// This returned path may be relative or absolute and it is up to the caller
|
| - /// to know how to interpret a relative path.
|
| static String pathFromDescription(description) => description["path"];
|
| -
|
| final name = 'path';
|
| -
|
| Future<Pubspec> doDescribe(PackageId id) {
|
| return syncFuture(() {
|
| var dir = _validatePath(id.name, id.description);
|
| - return new Pubspec.load(dir, systemCache.sources,
|
| - expectedName: id.name);
|
| + return new Pubspec.load(dir, systemCache.sources, expectedName: id.name);
|
| });
|
| }
|
| -
|
| bool descriptionsEqual(description1, description2) {
|
| - // Compare real paths after normalizing and resolving symlinks.
|
| var path1 = canonicalize(description1["path"]);
|
| var path2 = canonicalize(description2["path"]);
|
| return path1 == path2;
|
| }
|
| -
|
| Future get(PackageId id, String symlink) {
|
| return syncFuture(() {
|
| var dir = _validatePath(id.name, id.description);
|
| - createPackageSymlink(id.name, dir, symlink,
|
| + createPackageSymlink(
|
| + id.name,
|
| + dir,
|
| + symlink,
|
| relative: id.description["relative"]);
|
| });
|
| }
|
| -
|
| Future<String> getDirectory(PackageId id) =>
|
| newFuture(() => _validatePath(id.name, id.description));
|
| -
|
| - /// Parses a path dependency.
|
| - ///
|
| - /// This takes in a path string and returns a map. The "path" key will be the
|
| - /// original path but resolved relative to the containing path. The
|
| - /// "relative" key will be `true` if the original path was relative.
|
| - ///
|
| - /// A path coming from a pubspec is a simple string. From a lock file, it's
|
| - /// an expanded {"path": ..., "relative": ...} map.
|
| dynamic parseDescription(String containingPath, description,
|
| - {bool fromLockFile: false}) {
|
| + {bool fromLockFile: false}) {
|
| if (fromLockFile) {
|
| if (description is! Map) {
|
| throw new FormatException("The description must be a map.");
|
| }
|
| -
|
| if (description["path"] is! String) {
|
| - throw new FormatException("The 'path' field of the description must "
|
| - "be a string.");
|
| + throw new FormatException(
|
| + "The 'path' field of the description must " "be a string.");
|
| }
|
| -
|
| if (description["relative"] is! bool) {
|
| - throw new FormatException("The 'relative' field of the description "
|
| - "must be a boolean.");
|
| + throw new FormatException(
|
| + "The 'relative' field of the description " "must be a boolean.");
|
| }
|
| -
|
| return description;
|
| }
|
| -
|
| if (description is! String) {
|
| throw new FormatException("The description must be a path string.");
|
| }
|
| -
|
| - // Resolve the path relative to the containing file path, and remember
|
| - // whether the original path was relative or absolute.
|
| var isRelative = p.isRelative(description);
|
| if (p.isRelative(description)) {
|
| - // Can't handle relative paths coming from pubspecs that are not on the
|
| - // local file system.
|
| assert(containingPath != null);
|
| -
|
| - description = p.normalize(
|
| - p.join(p.dirname(containingPath), description));
|
| + description = p.normalize(p.join(p.dirname(containingPath), description));
|
| }
|
| -
|
| return {
|
| "path": description,
|
| "relative": isRelative
|
| };
|
| }
|
| -
|
| - /// Serializes path dependency's [description].
|
| - ///
|
| - /// For the descriptions where `relative` attribute is `true`, tries to make
|
| - /// `path` relative to the specified [containingPath].
|
| dynamic serializeDescription(String containingPath, description) {
|
| if (description["relative"]) {
|
| return {
|
| @@ -123,33 +77,21 @@ class PathSource extends Source {
|
| }
|
| return description;
|
| }
|
| -
|
| - /// Converts a parsed relative path to its original relative form.
|
| String formatDescription(String containingPath, description) {
|
| var sourcePath = description["path"];
|
| if (description["relative"]) {
|
| sourcePath = p.relative(description['path'], from: containingPath);
|
| }
|
| -
|
| return sourcePath;
|
| }
|
| -
|
| - /// Ensures that [description] is a valid path description and returns a
|
| - /// normalized path to the package.
|
| - ///
|
| - /// It must be a map, with a "path" key containing a path that points to an
|
| - /// existing directory. Throws an [ApplicationException] if the path is
|
| - /// invalid.
|
| String _validatePath(String name, description) {
|
| var dir = description["path"];
|
| -
|
| if (dirExists(dir)) return dir;
|
| -
|
| if (fileExists(dir)) {
|
| - fail('Path dependency for package $name must refer to a directory, '
|
| - 'not a file. Was "$dir".');
|
| + fail(
|
| + 'Path dependency for package $name must refer to a directory, '
|
| + 'not a file. Was "$dir".');
|
| }
|
| -
|
| throw new PackageNotFoundException(
|
| 'Could not find package $name at "$dir".');
|
| }
|
|
|