saveMetadata method
Future<String>
saveMetadata(
- String projectPath,
- ReleaseMetadata metadata, {
- bool dryRun = false,
Persists metadata as a machine-readable JSON manifest file on disk.
Implementation
Future<String> saveMetadata(
String projectPath,
ReleaseMetadata metadata, {
bool dryRun = false,
}) async {
final dirPath = getManifestDirectory(projectPath);
final fileName = '${metadata.versionName}_${metadata.buildNumber}.json';
final filePath = '$dirPath/$fileName';
if (dryRun) {
return filePath;
}
final dir = Directory(dirPath);
if (!await dir.exists()) {
await dir.create(recursive: true);
}
final file = File(filePath);
await file.writeAsString(metadata.encodeJson());
// Also update latest manifest symlink/copy
final latestFile = File('$dirPath/latest.json');
await latestFile.writeAsString(metadata.encodeJson());
return filePath;
}