doctorBlockingConditions function
List<String>
doctorBlockingConditions(
- DoctorReport report, {
- CompatibilityResult? compatibility,
The 'doctor' command.
Binds: FR-010, FR-011.
Implementation
List<String> doctorBlockingConditions(
DoctorReport report, {
CompatibilityResult? compatibility,
}) {
final blocking = <String>[];
if (!report.flutterExecutable.observed ||
report.flutterExecutable.value == null) {
blocking.add('Flutter executable not found on PATH');
}
if (!report.dartExecutable.observed || report.dartExecutable.value == null) {
blocking.add('Dart executable not found on PATH');
}
if (report.stagingAccess.observed && report.stagingAccess.value == false) {
blocking.add('Staging directory not writable');
}
if (report.tempAccess.observed && report.tempAccess.value == false) {
blocking.add('Temporary directory not writable');
}
if (report.recipeCompatibility.observed &&
report.recipeCompatibility.value == false) {
blocking.add('Recipe/toolchain compatibility check failed');
}
if (report.engineCompatibility.observed &&
report.engineCompatibility.value == false) {
blocking.add('Engine version compatibility check failed');
}
if (report.rendererVersionCompatibility.observed &&
report.rendererVersionCompatibility.value == false) {
blocking.add('Renderer version compatibility check failed');
}
blocking.addAll(
compatibility?.blockers.map((finding) => finding.message) ?? const [],
);
return blocking;
}