addEntries static method

void addEntries(
  1. List<String> entries
)

Appends entries to .gitignore, skipping any that already exist.

Implementation

static void addEntries(List<String> entries) {
  final file = File(_gitignorePath);
  String existing = '';
  if (file.existsSync()) {
    existing = file.readAsStringSync();
  }

  final existingLines = existing.split('\n').map((l) => l.trim()).toSet();
  final toAdd =
      entries.where((e) => !existingLines.contains(e.trim())).toList();
  if (toAdd.isEmpty) return;

  final buffer = StringBuffer();
  if (existing.isNotEmpty && !existing.endsWith('\n')) {
    buffer.writeln();
  }
  buffer.writeln('# flavor_cli ENV files');
  for (final entry in toAdd) {
    buffer.writeln(entry);
  }

  file.writeAsStringSync(existing + buffer.toString());
}