From 4dcfd683569248788d7ebb4f59cbb47866bec5fd Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Thu, 24 Aug 2017 00:47:19 +0200 Subject: [PATCH] log missing SettingPreset files --- Sources/ProjectSpec/ProjectExtensions.swift | 4 ++++ Sources/XcodeGenKit/SettingsBuilder.swift | 20 +++++++++++++++++--- Sources/XcodeGenKit/SettingsPresetFile.swift | 9 +++++++++ 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/Sources/ProjectSpec/ProjectExtensions.swift b/Sources/ProjectSpec/ProjectExtensions.swift index ef26976c..c69275f2 100644 --- a/Sources/ProjectSpec/ProjectExtensions.swift +++ b/Sources/ProjectSpec/ProjectExtensions.swift @@ -70,4 +70,8 @@ extension PBXProductType { public var isApp: Bool { return fileExtension == "app" } + + public var name: String { + return rawValue.replacingOccurrences(of: "com.apple.product-type.", with: "") + } } diff --git a/Sources/XcodeGenKit/SettingsBuilder.swift b/Sources/XcodeGenKit/SettingsBuilder.swift index 2b74bab1..ce96b69b 100644 --- a/Sources/XcodeGenKit/SettingsBuilder.swift +++ b/Sources/XcodeGenKit/SettingsBuilder.swift @@ -63,9 +63,23 @@ extension SettingsPresetFile { if let group = buildSettingFiles[path] { return group } - let settingsPath = Path(#file).parent().parent().parent() + "SettingPresets/\(path).yml" - guard settingsPath.exists, - let buildSettings = try? BuildSettings(path: settingsPath) else { return nil } + let relativePath = "SettingPresets/\(path).yml" + let settingsPath = Path(#file).parent().parent().parent() + relativePath + + guard settingsPath.exists else { + switch self { + case .base, .config, .platform: + print("No \"\(name)\" settings found at \(settingsPath)") + case .product: + break + } + return nil + } + + guard let buildSettings = try? BuildSettings(path: settingsPath) else { + print("Error parsing \"\(name)\" settings") + return nil + } buildSettingFiles[path] = buildSettings return buildSettings } diff --git a/Sources/XcodeGenKit/SettingsPresetFile.swift b/Sources/XcodeGenKit/SettingsPresetFile.swift index 09adcf1e..d89707ba 100644 --- a/Sources/XcodeGenKit/SettingsPresetFile.swift +++ b/Sources/XcodeGenKit/SettingsPresetFile.swift @@ -24,4 +24,13 @@ public enum SettingsPresetFile { case .base: return "base" } } + + var name: String { + switch self { + case let .config(config): return "\(config.rawValue) config" + case let .platform(platform): return platform.rawValue + case let .product(product): return product.name + case .base: return "base" + } + } }