buildEvidence function

ProjectEvidence buildEvidence(
  1. String path
)

Implementation

ProjectEvidence buildEvidence(String path) {
  final base = EnvironmentAnalyzer().analyze();
  String? javaPath, sdk = base.androidSdkPath;
  try {
    final p = Process.runSync(Platform.isWindows ? 'cmd.exe' : 'which',
        Platform.isWindows ? ['/c', 'where', 'java'] : ['java']);
    if (p.exitCode == 0)
      javaPath = p.stdout
          .toString()
          .split(RegExp(r'\\r?\\n'))
          .firstWhere((x) => x.trim().isNotEmpty, orElse: () => '')
          .trim();
  } catch (_) {}
  try {
    final p = Process.runSync(
        Platform.isWindows ? 'cmd.exe' : 'flutter',
        Platform.isWindows
            ? ['/c', 'flutter', 'doctor', '-v']
            : ['doctor', '-v']);
    final doctor = p.stdout.toString() + '\\n' + p.stderr.toString();
    sdk ??= RegExp(r'Android SDK at (.+)', caseSensitive: false)
        .firstMatch(doctor)
        ?.group(1)
        ?.trim();
  } catch (_) {}
  final env = EnvironmentInfo(
      flutterVersion: base.flutterVersion,
      dartVersion: base.dartVersion,
      flutterChannel: base.flutterChannel,
      javaVersion: base.javaVersion,
      javaHome: base.javaHome,
      androidSdkPath: sdk);
  final android = AndroidToolchainAnalyzer().analyze(path);
  final source = _minSource(path);
  return ProjectEvidence(env, android, javaPath, source, const []);
}