KatanaEnvironmentFixPlan.inspect constructor

KatanaEnvironmentFixPlan.inspect()

Inspects the current directory without changing it.

Implementation

factory KatanaEnvironmentFixPlan.inspect() {
  final operations = <String>[];
  for (final flavor in ["dev", "prod"]) {
    final file = File("dart_defines/$flavor.env");
    if (!file.existsSync() ||
        !_isCurrentDefine(file.readAsStringSync(), flavor)) {
      operations.add("normalize ${file.path}");
    }
  }
  final gradle = _androidGradleFile();
  if (gradle != null &&
      !gradle.readAsStringSync().contains(
            AndroidNativeEnvironmentSynchronizer.beginMarker,
          )) {
    operations.add("configure ${gradle.path}");
  }
  for (final path in _appleProjectPaths) {
    final file = File(path);
    if (file.existsSync() &&
        !file.readAsStringSync().contains(
              AppleFirebaseEnvironmentSynchronizer.buildPhaseName,
            )) {
      operations.add("configure $path");
    }
  }
  for (final legacy in [
    "android/env.properties",
    "ios/Flutter/DartDefine.xcconfig",
  ]) {
    if (File(legacy).existsSync()) {
      operations.add("retire legacy $legacy");
    }
  }
  for (final legacy in _legacyFirebaseFiles.keys) {
    if (File(legacy).existsSync()) {
      operations.add("inspect legacy Firebase file $legacy");
    }
  }
  return KatanaEnvironmentFixPlan._(operations: operations);
}