writeLockFile function
Write lock content to a file atomically.
Implementation
void writeLockFile(String lockFilePath, VersionLockContent content) {
final tempPath =
'$lockFilePath.tmp.$pid.${DateTime.now().millisecondsSinceEpoch}';
try {
File(tempPath).writeAsStringSync(
const JsonEncoder.withIndent(' ').convert(content.toJson()),
flush: true,
);
File(tempPath).renameSync(lockFilePath);
} catch (e) {
try {
File(tempPath).deleteSync();
} catch (_) {}
rethrow;
}
}