buildEvidence function
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 []);
}