From 0cf2ca9fa075eb4e5cddffe7359b3014f29a9a2f Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Tue, 30 Oct 2018 22:18:30 +1100 Subject: [PATCH] only write plists if file has changed --- Sources/XcodeGenKit/ProjectWriter.swift | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Sources/XcodeGenKit/ProjectWriter.swift b/Sources/XcodeGenKit/ProjectWriter.swift index 84ef2a59..9029f42e 100644 --- a/Sources/XcodeGenKit/ProjectWriter.swift +++ b/Sources/XcodeGenKit/ProjectWriter.swift @@ -43,6 +43,11 @@ public class ProjectWriter { private func writePlist(_ plist: [String: Any], path: String) throws { let path = project.basePath + path + if path.exists, let data: Data = try? path.read(), + let existingPlist = (try? PropertyListSerialization.propertyList(from: data, format: nil)) as? [String: Any], NSDictionary(dictionary: plist).isEqual(to: existingPlist) { + // file is the same + return + } let data = try PropertyListSerialization.data(fromPropertyList: plist, format: .xml, options: 0) try? path.delete() try path.parent().mkpath()