From 2f8250fb0a82a98d5bbc4e41f4b7f7b7ca18b34b Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Mon, 26 Feb 2018 18:26:41 +1100 Subject: [PATCH] write to a temp file first --- Sources/XcodeGen/main.swift | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Sources/XcodeGen/main.swift b/Sources/XcodeGen/main.swift index 8f116090..a8465d5b 100644 --- a/Sources/XcodeGen/main.swift +++ b/Sources/XcodeGen/main.swift @@ -44,8 +44,18 @@ func generate(spec: String, project: String, isQuiet: Bool, justVersion: Bool) { let project = try projectGenerator.generateProject() logger.info("⚙️ Writing project...") + let projectFile = projectPath + "\(spec.name).xcodeproj" - try project.write(path: projectFile, override: true) + let tempPath = Path.temporary + "XcodeGen_\(Int(NSTimeIntervalSince1970))" + try? tempPath.delete() + if projectFile.exists { + try projectFile.copy(tempPath) + } + try project.write(path: tempPath, override: true) + try? projectFile.delete() + try tempPath.copy(projectFile) + try? tempPath.delete() + logger.success("💾 Saved project to \(projectFile.string)") } catch let error as SpecValidationError { fatalError(error.description)