From 5d423210dd87025a982939a019cb162eef5670cf Mon Sep 17 00:00:00 2001 From: Nico Verbruggen Date: Thu, 1 Apr 2021 20:19:55 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=8C=20Improved=20PHP=20version=20filte?= =?UTF-8?q?r?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PHP Monitor.xcodeproj/project.pbxproj | 4 ++-- phpmon/Domain/Terminal/Actions.swift | 16 +++++++++++++--- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/PHP Monitor.xcodeproj/project.pbxproj b/PHP Monitor.xcodeproj/project.pbxproj index 65d070d..7cc6615 100644 --- a/PHP Monitor.xcodeproj/project.pbxproj +++ b/PHP Monitor.xcodeproj/project.pbxproj @@ -605,7 +605,7 @@ "$(inherited)", "@executable_path/../Frameworks", ); - MARKETING_VERSION = "3.3-prerelease4"; + MARKETING_VERSION = 3.3; PRODUCT_BUNDLE_IDENTIFIER = com.nicoverbruggen.phpmon; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -629,7 +629,7 @@ "$(inherited)", "@executable_path/../Frameworks", ); - MARKETING_VERSION = "3.3-prerelease4"; + MARKETING_VERSION = 3.3; PRODUCT_BUNDLE_IDENTIFIER = com.nicoverbruggen.phpmon; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; diff --git a/phpmon/Domain/Terminal/Actions.swift b/phpmon/Domain/Terminal/Actions.swift index 4fa1c93..2ba7be3 100644 --- a/phpmon/Domain/Terminal/Actions.swift +++ b/phpmon/Domain/Terminal/Actions.swift @@ -24,10 +24,18 @@ class Actions { // Get a list of versions only var versionsOnly : [String] = [] - versions.forEach { (string) in + versions.filter { (version) -> Bool in + // Omit everything that doesn't start with php@ + // (e.g. something-php@8.0 won't be detected) + return version.starts(with: "php@") + }.forEach { (string) in let version = string.components(separatedBy: "php@")[1] - // Only append the version if it doesn't already exist (avoid dupes) - if !versionsOnly.contains(version) && Constants.SupportedPhpVersions.contains(version) { + // Only append the version if it doesn't already exist (avoid dupes), + // is supported and where the binary exists (avoids broken installs) + if !versionsOnly.contains(version) + && Constants.SupportedPhpVersions.contains(version) + && Shell.fileExists("\(Paths.optPath)/php@\(version)/bin/php") + { versionsOnly.append(version) } } @@ -42,6 +50,8 @@ class Actions { versionsOnly.append(phpAlias); } + print("The PHP versions that were detected are: \(versionsOnly)") + return versionsOnly }