// Copyright (c) 2019, 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.

import 'dart:io';

/// Helper method to locate the root of the SDK repository.
///
/// The `modular_test` package is only intended to be used within the SDK at
/// this time. We need the ability to find the sdk root in order to locate the
/// default set of packages that are available to all modular tests.
Future<Uri> findRoot() async {
  Uri current = Platform.script;
  while (true) {
    var segments = current.pathSegments;
    var index = segments.lastIndexOf('sdk');
    if (index == -1) {
      exitCode = 1;
      throw "error: cannot find the root of the Dart SDK";
    }
    current = current.resolve("../" * (segments.length - index - 1));
    if (await File.fromUri(current.resolve("sdk/DEPS")).exists()) {
      break;
    }
  }
  return current.resolve("sdk/");
}
