writeBack method

Future<void> writeBack(
  1. ResolvedVersion version
)

Rewrites only the top-level version line, preserving all other formatting.

Implementation

Future<void> writeBack(ResolvedVersion version) async {
  final content = await pubspec.readAsString();
  final line = RegExp(r'^version\s*:\s*.*$', multiLine: true);
  if (!line.hasMatch(content)) {
    throw ArgumentError(
        'pubspec.yaml does not contain a writable version line.');
  }
  await pubspec.writeAsString(
    content.replaceFirst(line, 'version: ${version.name}+${version.code}'),
  );
}