diff --git a/phpmon/Common/PHP/PhpInstallation.swift b/phpmon/Common/PHP/PhpInstallation.swift index bd5e1ad..224f386 100644 --- a/phpmon/Common/PHP/PhpInstallation.swift +++ b/phpmon/Common/PHP/PhpInstallation.swift @@ -14,6 +14,8 @@ class PhpInstallation { var iniFiles: [PhpConfigurationFile] = [] + var isPreRelease: Bool = false + var isMissingBinary: Bool = false var isHealthy: Bool = true @@ -59,6 +61,10 @@ class PhpInstallation { trimNewlines: false ).trimmingCharacters(in: .whitespacesAndNewlines) + if longVersionString.contains("-dev") { + isPreRelease = true + } + // The parser should always work, or the string has to be very unusual. // If so, the app SHOULD crash, so that the users report what's up. versionNumber = try! VersionNumber.parse(longVersionString) diff --git a/phpmon/Domain/Integrations/Homebrew/BrewPhpFormulaeHandler.swift b/phpmon/Domain/Integrations/Homebrew/BrewPhpFormulaeHandler.swift index 80ad729..b61ece8 100644 --- a/phpmon/Domain/Integrations/Homebrew/BrewPhpFormulaeHandler.swift +++ b/phpmon/Domain/Integrations/Homebrew/BrewPhpFormulaeHandler.swift @@ -46,12 +46,17 @@ class BrewPhpFormulaeHandler: HandlesBrewPhpFormulae { return Brew.phpVersionFormulae.map { (version, formula) in var fullVersion: String? var upgradeVersion: String? + var isPrerelease: Bool = Constants.ExperimentalPhpVersions.contains(version) if let install = PhpEnvironments.shared.cachedPhpInstallations[version] { fullVersion = install.versionNumber.text + fullVersion = install.isPreRelease ? "\(fullVersion!)-dev" : fullVersion + upgradeVersion = outdated?.first(where: { formula in return formula.name == install.formulaName })?.current_version + + isPrerelease = install.isPreRelease } return BrewPhpFormula( @@ -59,7 +64,7 @@ class BrewPhpFormulaeHandler: HandlesBrewPhpFormulae { displayName: "PHP \(version)", installedVersion: fullVersion, upgradeVersion: upgradeVersion, - prerelease: Constants.ExperimentalPhpVersions.contains(version) + prerelease: isPrerelease ) }.sorted { $0.displayName > $1.displayName } }