From 22c0021adaf7971ce7617af080c75964f5b810e5 Mon Sep 17 00:00:00 2001 From: Nico Verbruggen Date: Sun, 20 Mar 2022 15:56:07 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Workaround=20broken=20JSON=20fil?= =?UTF-8?q?e=20(AddSiteVC.swift:66)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- phpmon/Domain/Integrations/Valet/SiteScanner.swift | 2 +- phpmon/Domain/Integrations/Valet/Valet.swift | 13 ++++++++----- phpmon/Domain/SiteList/AddSiteVC.swift | 4 +++- 3 files changed, 12 insertions(+), 7 deletions(-) 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)