addMegaDeps static method

void addMegaDeps({
  1. required bool hasOverridesDeps,
})

Implementation

static void addMegaDeps({required bool hasOverridesDeps}) {
  File file = File('pubspec.yaml');
  List<String> lines = file.readAsLinesSync();
  int? emptyLineIndex;
  String megaDeps = '''
mega_commons_dependencies:
  path: ../megaflutter_commons_dependencies
  # git:
  #   url: git@github.com:megaleios-git/megaflutter_commons_dependencies.git
  #   ref: 1.4.2
mega_commons:
  path: ../megaflutter_commons
  # git:
  #   url: git@github.com:megaleios-git/megaflutter_commons.git
  #   ref: 1.4.4
mega_features:
  path: ../megaflutter_features
  # git:
  #   url: git@github.com:megaleios-git/megaflutter_features.git
  #   ref: 1.4.4''';
  for (int i = 0; i < lines.length; i++) {
    if (lines[i].contains("cupertino_icons:")) {
      emptyLineIndex = getEmptyLine(i, lines, emptyLineIndex);
      break;
    }
    if (lines[i].contains("dependencies:")) {
      emptyLineIndex = getEmptyLine(i, lines, emptyLineIndex);
      break;
    }
  }
  if (emptyLineIndex != null) {
    if (hasOverridesDeps) {
      lines.removeWhere((line) => line.trim().startsWith('publish_to:'));
      lines.insert(emptyLineIndex, '''  mega_commons_dependencies:
mega_commons:
mega_features:
    ''');
      lines.insert(emptyLineIndex + 1, '''dependency_overrides:
$megaDeps''');
    } else {
      lines.insert(emptyLineIndex, megaDeps);
    }

    String newContent = lines.join('\n');
    file.writeAsStringSync(newContent);
  }
}