fromDirectory static method

PackageManifest fromDirectory(
  1. Directory dir
)

Parse the pubspec.yaml in dir and return a PackageManifest. If pubspec.lock exists alongside it, exact resolved versions are also populated in PackageManifest.resolvedVersions.

Implementation

static PackageManifest fromDirectory(Directory dir) {
  final pubspecFile = File(
    '${dir.path}${Platform.pathSeparator}pubspec.yaml',
  );
  if (!pubspecFile.existsSync()) {
    return const PackageManifest(name: 'unknown');
  }
  final manifest = fromString(pubspecFile.readAsStringSync());

  final lockFile = File('${dir.path}${Platform.pathSeparator}pubspec.lock');
  if (lockFile.existsSync()) {
    return _withLockVersions(manifest, lockFile.readAsStringSync());
  }
  return manifest;
}