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 }