diff --git a/phpmon/Domain/Integrations/Valet/SiteScanner.swift b/phpmon/Domain/Integrations/Valet/SiteScanner.swift index ebfdd60..c1f1fc9 100644 --- a/phpmon/Domain/Integrations/Valet/SiteScanner.swift +++ b/phpmon/Domain/Integrations/Valet/SiteScanner.swift @@ -73,7 +73,7 @@ class ValetSiteScanner: SiteScanner .contentsOfDirectory(atPath: path) return entries.forEach { - if let site = self.resolveSite(path: "\(path)/\($0))") { + if let site = self.resolveSite(path: "\(path)/\($0)") { sites.append(site) } } diff --git a/phpmon/Domain/Integrations/Valet/Valet.swift b/phpmon/Domain/Integrations/Valet/Valet.swift index 98a5940..14bf0f7 100644 --- a/phpmon/Domain/Integrations/Valet/Valet.swift +++ b/phpmon/Domain/Integrations/Valet/Valet.swift @@ -69,11 +69,14 @@ class Valet { let file = FileManager.default.homeDirectoryForCurrentUser .appendingPathComponent(".config/valet/config.json") - // TODO: (5.2) Fix loading of invalid JSON: do not crash the app - config = try! JSONDecoder().decode( - Valet.Configuration.self, - from: try! String(contentsOf: file, encoding: .utf8).data(using: .utf8)! - ) + do { + config = try JSONDecoder().decode( + Valet.Configuration.self, + from: try String(contentsOf: file, encoding: .utf8).data(using: .utf8)! + ) + } catch { + Log.err(error) + } } /** diff --git a/phpmon/Domain/SiteList/AddSiteVC.swift b/phpmon/Domain/SiteList/AddSiteVC.swift index 40f64f7..1c3b188 100644 --- a/phpmon/Domain/SiteList/AddSiteVC.swift +++ b/phpmon/Domain/SiteList/AddSiteVC.swift @@ -63,7 +63,9 @@ class AddSiteVC: NSViewController, NSTextFieldDelegate { return } - Shell.run("cd '\(path)' && \(Paths.valet) link '\(name)'", requiresPath: true) + // Adding `valet links` is a workaround for Valet malforming the config.json file + // TODO: I will have to investigate and report this behaviour if possible + Shell.run("cd '\(path)' && \(Paths.valet) link '\(name)' && valet links", requiresPath: true) self.dismissView(outcome: .OK)