From 1159a6cc2eac7462acd630269c864c96902353c2 Mon Sep 17 00:00:00 2001 From: Nico Verbruggen Date: Mon, 6 Dec 2021 12:29:00 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Prevent=20#61=20from=20crashing?= =?UTF-8?q?=20the=20app?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PHP Monitor.xcodeproj/project.pbxproj | 8 ++++---- phpmon/Domain/PHP/PhpInstallation.swift | 17 ++++++++++++----- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/PHP Monitor.xcodeproj/project.pbxproj b/PHP Monitor.xcodeproj/project.pbxproj index 97615de..a19d4d5 100644 --- a/PHP Monitor.xcodeproj/project.pbxproj +++ b/PHP Monitor.xcodeproj/project.pbxproj @@ -659,7 +659,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 80; + CURRENT_PROJECT_VERSION = 81; DEVELOPMENT_TEAM = 8M54J5J787; ENABLE_HARDENED_RUNTIME = YES; INFOPLIST_FILE = phpmon/Info.plist; @@ -667,7 +667,7 @@ "$(inherited)", "@executable_path/../Frameworks", ); - MARKETING_VERSION = 4.0; + MARKETING_VERSION = 4.0.1; PRODUCT_BUNDLE_IDENTIFIER = com.nicoverbruggen.phpmon; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -683,7 +683,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 80; + CURRENT_PROJECT_VERSION = 81; DEVELOPMENT_TEAM = 8M54J5J787; ENABLE_HARDENED_RUNTIME = YES; INFOPLIST_FILE = phpmon/Info.plist; @@ -691,7 +691,7 @@ "$(inherited)", "@executable_path/../Frameworks", ); - MARKETING_VERSION = 4.0; + MARKETING_VERSION = 4.0.1; PRODUCT_BUNDLE_IDENTIFIER = com.nicoverbruggen.phpmon; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; diff --git a/phpmon/Domain/PHP/PhpInstallation.swift b/phpmon/Domain/PHP/PhpInstallation.swift index 11e513f..7c69403 100644 --- a/phpmon/Domain/PHP/PhpInstallation.swift +++ b/phpmon/Domain/PHP/PhpInstallation.swift @@ -11,7 +11,7 @@ import Foundation class PhpInstallation { var longVersion: String - var homebrewInfo: HomebrewPackage + var homebrewInfo: HomebrewPackage? init(_ version: String) { let phpConfigExecutablePath = "\(Paths.optPath)/php@\(version)/bin/php-config" @@ -24,10 +24,17 @@ class PhpInstallation { } let info = Shell.pipe("\(Paths.brew) info php@\(version) --json") - self.homebrewInfo = try! JSONDecoder().decode( - [HomebrewPackage].self, - from: info.data(using: .utf8)! - ).first! + + do { + let data = try JSONDecoder().decode( + [HomebrewPackage].self, + from: info.data(using: .utf8)! + ) + self.homebrewInfo = data.first! + } catch { + print("There was an issue parsing Homebrew info for PHP \(version)") + self.homebrewInfo = nil + } } }