diff --git a/mac/KeymanSettings/Sources/Persistence/Data/PackageSource.swift b/mac/KeymanSettings/Sources/Persistence/Data/PackageSource.swift index 75494968d0..e9d4013dab 100644 --- a/mac/KeymanSettings/Sources/Persistence/Data/PackageSource.swift +++ b/mac/KeymanSettings/Sources/Persistence/Data/PackageSource.swift @@ -10,6 +10,9 @@ import Foundation +let defaultHelpFilename = "welcome.htm" +let defaultReadmeFilename = "readme.htm" + public struct PackageSource: Identifiable, Decodable, Hashable, Equatable { public var id = UUID() let system: SystemInfo? @@ -35,16 +38,25 @@ public struct PackageSource: Identifiable, Decodable, Hashable, Equatable { var readmeFilename: String? { if let filename = options?.readmeFile { return filename - } else { - return nil } + if let fileArray = self.files { + if fileArray.contains(where: { $0.name == defaultReadmeFilename }) { + return defaultReadmeFilename + } + } + return nil } var helpFilename: String? { if let filename = options?.welcomeFile { return filename - } else { - return nil } + if let fileArray = self.files { + if fileArray.contains(where: { $0.name == defaultHelpFilename }) { + return defaultHelpFilename + } + } + + return nil } var graphicFilename: String? { if let filename = options?.graphicFile { diff --git a/mac/KeymanSettings/Sources/Persistence/PackageRepository.swift b/mac/KeymanSettings/Sources/Persistence/PackageRepository.swift index a353d10cbe..e35541969a 100644 --- a/mac/KeymanSettings/Sources/Persistence/PackageRepository.swift +++ b/mac/KeymanSettings/Sources/Persistence/PackageRepository.swift @@ -274,10 +274,8 @@ public class PackageRepository: PackageRepo { var packageSource: PackageSource? do { let jsonData = try Data(contentsOf: kmpFileUrl, options: .mappedIfSafe) - var source: PackageSource = try JSONDecoder().decode(PackageSource.self, from: jsonData) + packageSource = try JSONDecoder().decode(PackageSource.self, from: jsonData) - print("readPackage, packageName: \(source.packageName)") - packageSource = source } catch let error as LoadPackageError { // if we encounter a LoadPackageError, propagate it throw error