generateMetadataFile method

Future<String> generateMetadataFile(
  1. ReleaseMetadataModel metadata
)

Generates the release.json file inside the target releaseDirectory.

Returns the absolute path of the generated release.json.

Implementation

Future<String> generateMetadataFile(ReleaseMetadataModel metadata) async {
  _validateMetadata(metadata);

  final dir = Directory(metadata.releaseDirectory);
  if (!dir.existsSync()) {
    dir.createSync(recursive: true);
  }

  final file = File(p.join(dir.path, 'release.json'));

  // Format JSON with 2-space indentation
  final encoder = const JsonEncoder.withIndent('  ');
  final jsonString = encoder.convert(metadata.toJson());

  await file.writeAsString(jsonString);

  return file.absolute.path;
}