addPubspecFileWithoutCommitting function

Future<File> addPubspecFileWithoutCommitting(
  1. Directory testDir, {
  2. required String? version,
  3. String? additionalContent,
})

Create a pubspec.yaml file with a version

Implementation

Future<File> addPubspecFileWithoutCommitting(
  Directory testDir, {
  required String? version,
  String? additionalContent,
}) async {
  final file = File('${testDir.path}/pubspec.yaml');

  var content = await file.exists()
      ? await file.readAsString()
      : 'name: test\nversion: $version\n';

  if (version == null) {
    content = content.replaceAll(RegExp(r'version: .*'), '');
  } else {
    content = content.replaceAll(RegExp(r'version: .*'), 'version: $version');
  }

  // Add additional content
  if (additionalContent != null) {
    if (!content.contains(additionalContent)) {
      content += additionalContent;
    }
  }

  await file.writeAsString(content);
  return file;
}