Future<String> determineAqueductPath(Directory projectDirectory, String aqueductVersion, { bool offline: false })

Source

Future<String> determineAqueductPath(
    Directory projectDirectory, String aqueductVersion,
    {bool offline: false}) async {
  var split = aqueductVersion.split("aqueduct:").last.trim();

  displayInfo("Fetching Aqueduct templates ($split)...");
  var temporaryPubspec = generatingPubspec(aqueductVersion);

  new File(path_lib.join(projectDirectory.path, "pubspec.yaml"))
      .writeAsStringSync(temporaryPubspec);

  await runPubGet(projectDirectory, offline: offline);

  var resolver = new PackagePathResolver(
      path_lib.join(projectDirectory.path, ".packages"));
  var resolvedURL =
      resolver.resolve(new Uri(scheme: "package", path: "aqueduct"));

  new File(path_lib.join(projectDirectory.path, "pubspec.yaml")).deleteSync();
  new File(path_lib.join(projectDirectory.path, ".packages")).deleteSync();

  var path = path_lib.normalize(resolvedURL + "..");
  displayProgress("Aqueduct directory is: $path");

  return path;
}