From 52394296be24514d5b43133dbc4387db2e88b05d Mon Sep 17 00:00:00 2001 From: Davide De Rosa Date: Mon, 29 Oct 2018 22:39:13 +0100 Subject: [PATCH] Drop pre-release migration logic --- .../Model/ConnectionService+Migration.swift | 162 +----------------- 1 file changed, 2 insertions(+), 160 deletions(-) diff --git a/Passepartout/Sources/Model/ConnectionService+Migration.swift b/Passepartout/Sources/Model/ConnectionService+Migration.swift index 03513539..d282953b 100644 --- a/Passepartout/Sources/Model/ConnectionService+Migration.swift +++ b/Passepartout/Sources/Model/ConnectionService+Migration.swift @@ -39,173 +39,15 @@ extension ConnectionService { } } - static func migrateJSON(at from: URL) throws -> Data { + private static func migrateJSON(at from: URL) throws -> Data { let data = try Data(contentsOf: from) guard var json = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any] else { throw ApplicationError.migration } // put migration logic here - // TODO: remove this code after 1.0 release - let build = json["build"] as? Int ?? 0 - if build <= 1084 { - try migrateToWrappedSessionConfiguration(&json) - try migrateToBaseConfiguration(&json) - try migrateToBuildNumber(&json) - try migrateHostProfileConfigurations() - try migrateSplitProfileSerialization(&json) - } - if build <= 1107 { - let fm = FileManager.default - let inbox = fm.userURL(for: .documentDirectory, appending: "Inbox") - try? fm.removeItem(at: inbox) - } + let _ = json["build"] as? Int ?? 0 return try JSONSerialization.data(withJSONObject: json, options: []) } - - // MARK: Atomic migrations - - static func migrateToWrappedSessionConfiguration(_ json: inout [String: Any]) throws { - guard let profiles = json["profiles"] as? [[String: Any]] else { - // migrated - return - } - var newProfiles: [[String: Any]] = [] - for var container in profiles { - guard var hostProfile = container["host"] as? [String: Any] else { - newProfiles.append(container) - continue - } - guard var parameters = hostProfile["parameters"] as? [String: Any] else { - throw ApplicationError.migration - } - guard parameters["sessionConfiguration"] == nil else { - newProfiles.append(container) - continue - } - migrateSessionConfiguration(in: ¶meters) - hostProfile["parameters"] = parameters - container["host"] = hostProfile - newProfiles.append(container) - } - json["profiles"] = newProfiles - } - - static func migrateToBaseConfiguration(_ json: inout [String: Any]) throws { - guard var baseConfiguration = json["tunnelConfiguration"] as? [String: Any] else { - // migrated - return - } - migrateSessionConfiguration(in: &baseConfiguration) - json["baseConfiguration"] = baseConfiguration - json.removeValue(forKey: "tunnelConfiguration") - } - - static func migrateToBuildNumber(_ json: inout [String: Any]) throws { - json["build"] = GroupConstants.App.buildNumber - } - - static func migrateHostProfileConfigurations() throws { - let fm = FileManager.default - let oldDirectory = fm.userURL(for: .documentDirectory, appending: "Configurations") - guard fm.fileExists(atPath: oldDirectory.path) else { - return - } - - let newDirectory = fm.userURL(for: .documentDirectory, appending: AppConstants.Store.hostsDirectory) - try fm.moveItem(at: oldDirectory, to: newDirectory) - let list = try fm.contentsOfDirectory(at: newDirectory, includingPropertiesForKeys: nil, options: []) - let prefix = "host." - for url in list { - let filename = url.lastPathComponent - guard filename.hasPrefix(prefix) else { - continue - } - let postPrefixIndex = filename.index(filename.startIndex, offsetBy: prefix.count) - let newFilename = String(filename[postPrefixIndex..