From 96f6f94fa75bf7ea004e72c9025794107fc64303 Mon Sep 17 00:00:00 2001 From: Nikolay Edigaryev Date: Mon, 8 Jan 2024 18:34:13 +0400 Subject: [PATCH] tart set: make --disk-size change idempotent (#698) ...when the size is not changed. --- Sources/tart/VMDirectory.swift | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Sources/tart/VMDirectory.swift b/Sources/tart/VMDirectory.swift index 5b9ae27..694d8b4 100644 --- a/Sources/tart/VMDirectory.swift +++ b/Sources/tart/VMDirectory.swift @@ -138,13 +138,14 @@ struct VMDirectory: Prunable { let diskFileHandle = try FileHandle.init(forWritingTo: diskURL) let currentDiskFileLength = try diskFileHandle.seekToEnd() let desiredDiskFileLength = UInt64(sizeGB) * 1000 * 1000 * 1000 - if desiredDiskFileLength <= currentDiskFileLength { + if desiredDiskFileLength < currentDiskFileLength { let currentLengthHuman = ByteCountFormatter().string(fromByteCount: Int64(currentDiskFileLength)) let desiredLengthHuman = ByteCountFormatter().string(fromByteCount: Int64(desiredDiskFileLength)) throw RuntimeError.InvalidDiskSize("new disk size of \(desiredLengthHuman) should be larger " + "than the current disk size of \(currentLengthHuman)") + } else if desiredDiskFileLength > currentDiskFileLength { + try diskFileHandle.truncate(atOffset: desiredDiskFileLength) } - try diskFileHandle.truncate(atOffset: desiredDiskFileLength) try diskFileHandle.close() }