From e398f089af74a69c36d71fabef664ce15062273c Mon Sep 17 00:00:00 2001 From: Nico Verbruggen Date: Tue, 22 Feb 2022 20:39:35 +0100 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Refactor=20Valet=20structu?= =?UTF-8?q?re,=20add=20#143?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PHP Monitor.xcodeproj/project.pbxproj | 12 ++ assets/affinity/icon.afdesign | Bin 119802 -> 139511 bytes .../Integrations/Composer/ComposerJson.swift | 9 +- .../Valet/Valet.Configuration.swift | 32 +++ .../Integrations/Valet/Valet.Site.swift | 188 ++++++++++++++++++ phpmon/Domain/Integrations/Valet/Valet.swift | 172 ---------------- phpmon/Domain/SiteList/SiteListCell.swift | 4 +- phpmon/Localizable.strings | 7 +- 8 files changed, 244 insertions(+), 180 deletions(-) create mode 100644 phpmon/Domain/Integrations/Valet/Valet.Configuration.swift create mode 100644 phpmon/Domain/Integrations/Valet/Valet.Site.swift diff --git a/PHP Monitor.xcodeproj/project.pbxproj b/PHP Monitor.xcodeproj/project.pbxproj index 857a7a0..c42713c 100644 --- a/PHP Monitor.xcodeproj/project.pbxproj +++ b/PHP Monitor.xcodeproj/project.pbxproj @@ -153,6 +153,10 @@ C4DEB7D427A5D60B00834718 /* Stats.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4DEB7D327A5D60B00834718 /* Stats.swift */; }; C4E0F7ED27BEBDA9007475F2 /* NSWindowExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4E0F7EC27BEBDA9007475F2 /* NSWindowExtension.swift */; }; C4E0F7EE27BEBDA9007475F2 /* NSWindowExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4E0F7EC27BEBDA9007475F2 /* NSWindowExtension.swift */; }; + C4E4404627C56F4700D225E1 /* Valet.Site.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4E4404527C56F4700D225E1 /* Valet.Site.swift */; }; + C4E4404727C56F4700D225E1 /* Valet.Site.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4E4404527C56F4700D225E1 /* Valet.Site.swift */; }; + C4E4404927C56F5F00D225E1 /* Valet.Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4E4404827C56F5F00D225E1 /* Valet.Configuration.swift */; }; + C4E4404A27C56F5F00D225E1 /* Valet.Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4E4404827C56F5F00D225E1 /* Valet.Configuration.swift */; }; C4EC1E66279DE0380010F296 /* ServicesView.xib in Resources */ = {isa = PBXBuildFile; fileRef = C4EC1E65279DE0380010F296 /* ServicesView.xib */; }; C4EC1E68279DE0540010F296 /* ServicesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4EC1E67279DE0540010F296 /* ServicesView.swift */; }; C4EC1E73279DFCF40010F296 /* Events.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4EC1E72279DFCF40010F296 /* Events.swift */; }; @@ -303,6 +307,8 @@ C4D9ADC7277611A0007277F4 /* InternalSwitcher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InternalSwitcher.swift; sourceTree = ""; }; C4DEB7D327A5D60B00834718 /* Stats.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Stats.swift; sourceTree = ""; }; C4E0F7EC27BEBDA9007475F2 /* NSWindowExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NSWindowExtension.swift; sourceTree = ""; }; + C4E4404527C56F4700D225E1 /* Valet.Site.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Valet.Site.swift; sourceTree = ""; }; + C4E4404827C56F5F00D225E1 /* Valet.Configuration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Valet.Configuration.swift; sourceTree = ""; }; C4E713562570150F00007428 /* SECURITY.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = SECURITY.md; sourceTree = ""; }; C4E713572570151400007428 /* docs */ = {isa = PBXFileReference; lastKnownFileType = folder; path = docs; sourceTree = ""; }; C4EC1E65279DE0380010F296 /* ServicesView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ServicesView.xib; sourceTree = ""; }; @@ -572,6 +578,8 @@ isa = PBXGroup; children = ( C4AF9F792754499000D44ED0 /* Valet.swift */, + C4E4404527C56F4700D225E1 /* Valet.Site.swift */, + C4E4404827C56F5F00D225E1 /* Valet.Configuration.swift */, ); path = Valet; sourceTree = ""; @@ -848,6 +856,7 @@ C48D6C70279CD2AC00F26D7E /* PhpVersionNumber.swift in Sources */, C4B585412770FE3900DA4FBE /* Shell.swift in Sources */, C4998F0A2617633900B2526E /* PrefsWC.swift in Sources */, + C4E4404927C56F5F00D225E1 /* Valet.Configuration.swift in Sources */, C4F8C0A422D4F12C002EFE61 /* DateExtension.swift in Sources */, C4AF9F7A2754499000D44ED0 /* Valet.swift in Sources */, 5420395926135DC100FB00FA /* PrefsVC.swift in Sources */, @@ -859,6 +868,7 @@ C4EE55AD27708B9E001DF387 /* PMStatsView.swift in Sources */, C4C8E818276F54D8003AC782 /* App+ConfigWatch.swift in Sources */, 54FCFD30276C8DA4004CE748 /* HotkeyPreferenceView.swift in Sources */, + C4E4404627C56F4700D225E1 /* Valet.Site.swift in Sources */, C4EC1E68279DE0540010F296 /* ServicesView.swift in Sources */, C4F2E43A2752F7D00020E974 /* PhpInstallation.swift in Sources */, C41E871A2763D42300161EE0 /* SiteListVC+ContextMenu.swift in Sources */, @@ -999,7 +1009,9 @@ C40B24F127A3106D0018C7D2 /* ServicesView.swift in Sources */, C4F780C525D80B75000DBC97 /* MenuBarImageGenerator.swift in Sources */, C4F780B725D80B5D000DBC97 /* App.swift in Sources */, + C4E4404A27C56F5F00D225E1 /* Valet.Configuration.swift in Sources */, C4927F0C27B2DFC200C55AFD /* Errors.swift in Sources */, + C4E4404727C56F4700D225E1 /* Valet.Site.swift in Sources */, C44CCD4A27AFF3BC00CE40E5 /* MainMenu+Async.swift in Sources */, C48D6C71279CD2AC00F26D7E /* PhpVersionNumber.swift in Sources */, C4F780C925D80B75000DBC97 /* StringExtension.swift in Sources */, diff --git a/assets/affinity/icon.afdesign b/assets/affinity/icon.afdesign index caf2d826d25e4e5c9e4664e37382f86ca1e90818..e5b3710da8c074a9eb6e97c710302e907b766de1 100644 GIT binary patch delta 61357 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

EZ0`D;byl z+DDIz98c{Mj?kOs!4g1jkrQ%I2ALZLZ{OPKG2E|&tg7kX3H)40=k|>?gScAmafI)< z24NEOUH5`E|H`LLT#~+lmn3bx?R{0~JbN{O1y7?^X>uta>vuicSsY07nTkmASLU@p7eTXhsY>={kTtcDIkX3%nO_J6 zTOKnG-p@#|d@Yilo!#>6=~LA-g=ce0k!<3sK;Gk~?9&H*N72u*CHtlbYhbWRKLMXC zfa}*F80MsbKKXICEdHbu2y4^#U4tFyc=AUG*LRJvm0jY2 z*+`j-lzqp0-=oR8&@f1fTC0wViuyuTVW>`h152dyTVHHwyC9s!BkfGN7~_liI{sS> zqyk9m`)s`OPbQb4Pmm{e7JG=D?d^FQ8d>eEN}u?0`WZrH^!6w&p%Ekn6B`PN$I-B> zZun$LoE=)?)GI?PTDjP+U2(U1yMwF0$fjxgx|Eb*_CPHh$8Zn|sZgF;nRttjmcZ zSoWGBWN;Cgx>)UmIT&3^@4@G*SFX_WC_H_nYhcik2;J9l`<$V2QAReH-J+M7=SVJU zm}u*B``Yj3rH6woFFOpnA&(%wZj{kTRZ4L}ggqYeSM~D>Dwnc@AT~?B6!OTv_7`A@ zkwQAP6=OC0Ki=?#RpYJ{2HyN1Q_NlWg#y};0TFx(7KyVMC=%Ad%4$3jGDpu=2xSrv zp>sopcA5k#WpEPzjJw&owIz*|x%u~R*WKD55y@&+MoLha8r|MJ z5$?W5#f?V3($&@VW;=g=^>=6I#D|20;^PrFA~;s#vG`~7^=oF$%sf_(ZY?}iTjsuB z@iGb5F4#ciL?ifvpd3UICn-VxL;+lxTS-hQh8Wnb$tLsTU@B6{bE)^6CS(BS(k{a# zz7VQQwYRq~Z*FOEOiNB4Qs#al(kP@Yiwa_h0FABwjSLIqxvNq*&&YqZZwVq2!NTv~ zx3o1if5m_Q{ypT+pFe^xUc9&!!>eLmXy2I@(y4mv+zD;ukvNO`n2RTNu4iU1@!hov zu7Qx~2t0=|g70N%pv*VBwV>ilcr#uY|Aon;?+q4m&VxpklOZ%IyXzCgf8OhIUjbH4 zP)bTF!>Y!QBU#`&^b??(E)Mq0Z`=CRjO#%lXWOragEv-Ks(KFs270kg34b?z0$vN* z`YET;>b(BM3jGIW{p2xWq81_gj`A+IA#_0P#YHrWBaC$=O7dx$;p&uN+>5dtp#n9Z z?WmUQmzJl&82*1znH*^3Nic@+XMG<9#bKU8VH0m>XJ^SRE#QBkgTpssMMXtG&lmk$ zwa}PmT)cSkKRL!?&XR8Pp+wK7HpdeaeV{1jm*X_sPwY)-MkEJaSdIGaUgGbGPGs-7 zHJ!t=k7zmNteWk+ux+NYWJ(!8K{O*HdJ?PX+Js?ZJbuJ-gefSav@eh*JHlt^QsNRj zyvT9aB*d*8yiAHXXu3}MaIAo*Vcpn>?a75lu5^HKX^;{$)(>6nAD}_eo7GRw8D29k zaY7I7vdCL9+KfDQDRuGc^is_+Fb^h_-L|ZgJI?*$NH%~997GxqMXhzNyyG_rXLD}< z+s`;zzRHR4qL^@;aCGr%>!@X#@)pU89AqjtbD1;&Z*aCU78b8JpbMG(1x`vCH>dJ^ zS1Nw5_O^{t2VH|y@xYwYdqeGe(Tv2K>Xt%~A4^>AKP{N>o)(a3o#?1}$8$~yy*Z`N zYuBloXo|UC#pEpr?rNU7T?$EEl>&FgR^D( z4N|T_7R4m5j-2YnAsc9Z>`nKxcda*pP9wQ`Hx4L54yNwv<=D^;j+GU=?Mtb@W)h$4 zt^d}gm{(NAo|GX&4y;Wd (String, String) { + public func getPhpVersion() -> (String, Valet.Site.VersionSource) + { // Check if in platform if configuration?.platform?.php != nil { - return (configuration!.platform!.php!, "platform") + return (configuration!.platform!.php!, .platform) } // Check if in dependencies if dependencies?["php"] != nil { - return (dependencies!["php"]!, "require") + return (dependencies!["php"]!, .require) } // Unknown! - return ("???", "unknown") + return ("???", .unknown) } /** diff --git a/phpmon/Domain/Integrations/Valet/Valet.Configuration.swift b/phpmon/Domain/Integrations/Valet/Valet.Configuration.swift new file mode 100644 index 0000000..36329cf --- /dev/null +++ b/phpmon/Domain/Integrations/Valet/Valet.Configuration.swift @@ -0,0 +1,32 @@ +// +// Valet.Configuration.swift +// PHP Monitor +// +// Created by Nico Verbruggen on 22/02/2022. +// Copyright © 2022 Nico Verbruggen. All rights reserved. +// + +import Foundation + +extension Valet { + + struct Configuration: Decodable { + /// Top level domain suffix. Usually "test" but can be set to something else. + /// - Important: Does not include the actual dot. ("test", not ".test"!) + let tld: String + + /// The paths that need to be checked. + let paths: [String] + + /// The loopback address. Optional. + let loopback: String? + + /// The default site that is served if the domain is not found. Optional. + let defaultSite: String? + + private enum CodingKeys: String, CodingKey { + case tld, paths, loopback, defaultSite = "default" + } + } + +} diff --git a/phpmon/Domain/Integrations/Valet/Valet.Site.swift b/phpmon/Domain/Integrations/Valet/Valet.Site.swift new file mode 100644 index 0000000..2e4e5fb --- /dev/null +++ b/phpmon/Domain/Integrations/Valet/Valet.Site.swift @@ -0,0 +1,188 @@ +// +// Valet+Subclasses.swift +// PHP Monitor +// +// Created by Nico Verbruggen on 22/02/2022. +// Copyright © 2022 Nico Verbruggen. All rights reserved. +// + +import Foundation + +extension Valet { + + class Site { + + /// Name of the site. Does not include the TLD. + var name: String! + + /// The absolute path to the directory that is served. + var absolutePath: String! + + /// The absolute path to the directory that is served, + /// replacing the user's home folder with ~. + lazy var absolutePathRelative: String = { + return self.absolutePath + .replacingOccurrences(of: "/Users/\(Paths.whoami)", with: "~") + }() + + /// Location of the alias. If set, this is a linked domain. + var aliasPath: String? + + /// Whether the site has been secured. + var secured: Bool! + + /// What driver is currently in use. If not detected, defaults to nil. + var driver: String? = nil + + /// Whether the driver was determined by checking the Composer file. + var driverDeterminedByComposer: Bool = false + + /// A list of notable Composer dependencies. + var notableComposerDependencies: [String: String] = [:] + + /// The PHP version as discovered in `composer.json` or in .valetphprc. + var composerPhp: String = "???" + + /// Check whether the PHP version is valid for the currently linked version. + var composerPhpCompatibleWithLinked: Bool = false + + /// How the PHP version was determined. + var composerPhpSource: VersionSource = .unknown + + enum VersionSource: String { + case unknown = "unknown" + case require = "require" + case platform = "platform" + case valetphprc = "valetphprc" + } + + init() {} + + convenience init(absolutePath: String, tld: String) { + self.init() + self.absolutePath = absolutePath + self.name = URL(fileURLWithPath: absolutePath).lastPathComponent + self.aliasPath = nil + determineSecured(tld) + determineComposerPhpVersion() + determineDriver() + } + + convenience init(aliasPath: String, tld: String) { + self.init() + self.absolutePath = try! FileManager.default.destinationOfSymbolicLink(atPath: aliasPath) + self.name = URL(fileURLWithPath: aliasPath).lastPathComponent + self.aliasPath = aliasPath + determineSecured(tld) + determineComposerPhpVersion() + determineDriver() + } + + /** + Checks if a certificate file can be found in the `valet/Certificates` directory. + - Note: The file is not validated, only its presence is checked. + */ + public func determineSecured(_ tld: String) { + secured = Filesystem.fileExists("~/.config/valet/Certificates/\(self.name!).\(tld).key") + } + + /** + Checks if `composer.json` exists in the folder, and extracts notable information: + + - The PHP version required (the constraint, so it could be `^8.0`, for example) + - Where the PHP version was found (`require` or `platform` or via .valetphprc) + - Notable PHP dependencies (determined via `PhpFrameworks.DependencyList`) + + The method then also checks if the determined constraint (if found) is compatible + with the currently linked version of PHP (see `composerPhpMatchesSystem`). + */ + public func determineComposerPhpVersion() { + do { + let path = "\(absolutePath!)/composer.json" + + if Filesystem.fileExists(path) { + let decoded = try JSONDecoder().decode( + ComposerJson.self, + from: String(contentsOf: URL(fileURLWithPath: path), encoding: .utf8).data(using: .utf8)! + ) + + (self.composerPhp, self.composerPhpSource) = decoded.getPhpVersion() + self.notableComposerDependencies = decoded.getNotableDependencies() + } + } catch { + Log.err("Something went wrong reading the Composer JSON file.") + } + + do { + let path = "\(absolutePath!)/.valetphprc" + + if Filesystem.fileExists(path) { + let contents = try String(contentsOf: URL(fileURLWithPath: path), encoding: .utf8) + if let version = VersionExtractor.from(contents) { + self.composerPhp = version + self.composerPhpSource = .valetphprc + } + } + } catch { + Log.err("Something went wrong parsing the .valetphprc file") + } + + // TODO: Check if .valetphprc exists and if it contains a valid version number + + if self.composerPhp == "???" { + return + } + + // Split the composer list (on "|") to evaluate multiple constraints + // For example, for Laravel 8 projects the value is "^7.3|^8.0" + self.composerPhpCompatibleWithLinked = + self.composerPhp.split(separator: "|").map { string in + return PhpVersionNumberCollection.make(from: [PhpEnv.phpInstall.version.long]) + .matching(constraint: string.trimmingCharacters(in: .whitespacesAndNewlines)) + .count > 0 + }.contains(true) + } + + /** + Determine the driver to be displayed in the list of sites. In v5.0, this has been changed + to load the "framework" or "project type" instead. + */ + public func determineDriver() { + self.determineDriverViaComposer() + + if self.driver == nil { + self.driver = PhpFrameworks.detectFallbackDependency(self.absolutePath) + } + } + + /** + Check the dependency list and see if a particular dependency can't be found. + We'll revert the dependency list so that Laravel and Symfony are detected last. + + (Some other frameworks might use Laravel, so if we found it first the detection would be incorrect: + this would happen with Statamic, for example.) + */ + private func determineDriverViaComposer() { + self.driverDeterminedByComposer = true + + PhpFrameworks.DependencyList.reversed().forEach { (key: String, value: String) in + if self.notableComposerDependencies.keys.contains(key) { + self.driver = value + } + } + } + + @available(*, deprecated, renamed: "determineDriver") + private func determineDriverViaValet() { + let driver = Shell.pipe("cd '\(absolutePath!)' && valet which", requiresPath: true) + if driver.contains("This site is served by") { + self.driver = driver + .replacingOccurrences(of: "This site is served by [", with: "") + .replacingOccurrences(of: "ValetDriver].\n", with: "") + } else { + self.driver = nil + } + } + } + +} diff --git a/phpmon/Domain/Integrations/Valet/Valet.swift b/phpmon/Domain/Integrations/Valet/Valet.swift index c67daed..d7b4b9f 100644 --- a/phpmon/Domain/Integrations/Valet/Valet.swift +++ b/phpmon/Domain/Integrations/Valet/Valet.swift @@ -180,176 +180,4 @@ class Valet { } } - // MARK: - Structs - - class Site { - /// Name of the site. Does not include the TLD. - var name: String! - - /// The absolute path to the directory that is served. - var absolutePath: String! - - /// The absolute path to the directory that is served, - /// replacing the user's home folder with ~. - lazy var absolutePathRelative: String = { - return self.absolutePath - .replacingOccurrences(of: "/Users/\(Paths.whoami)", with: "~") - }() - - /// Location of the alias. If set, this is a linked domain. - var aliasPath: String? - - /// Whether the site has been secured. - var secured: Bool! - - /// What driver is currently in use. If not detected, defaults to nil. - var driver: String? = nil - - /// Whether the driver was determined by checking the Composer file. - var driverDeterminedByComposer: Bool = false - - /// A list of notable Composer dependencies. - var notableComposerDependencies: [String: String] = [:] - - /// The PHP version as discovered in `composer.json`. - var composerPhp: String = "???" - - /// Check whether the PHP version is valid for the currently linked version. - var composerPhpCompatibleWithLinked: Bool = false - - /// How the PHP version was determined. - var composerPhpSource: String = "unknown" - - init() {} - - convenience init(absolutePath: String, tld: String) { - self.init() - self.absolutePath = absolutePath - self.name = URL(fileURLWithPath: absolutePath).lastPathComponent - self.aliasPath = nil - determineSecured(tld) - determineComposerPhpVersion() - determineDriver() - } - - convenience init(aliasPath: String, tld: String) { - self.init() - self.absolutePath = try! FileManager.default.destinationOfSymbolicLink(atPath: aliasPath) - self.name = URL(fileURLWithPath: aliasPath).lastPathComponent - self.aliasPath = aliasPath - determineSecured(tld) - determineComposerPhpVersion() - determineDriver() - } - - /** - Checks if a certificate file can be found in the `valet/Certificates` directory. - - Note: The file is not validated, only its presence is checked. - */ - public func determineSecured(_ tld: String) { - secured = Filesystem.fileExists("~/.config/valet/Certificates/\(self.name!).\(tld).key") - } - - /** - Checks if `composer.json` exists in the folder, and extracts notable information: - - - The PHP version required (the constraint, so it could be `^8.0`, for example) - - Where the PHP version was found (`require` or `platform`) - - Notable PHP dependencies (determined via `PhpFrameworks.DependencyList`) - - The method then also checks if the determined constraint (if found) is compatible - with the currently linked version of PHP (see `composerPhpMatchesSystem`). - */ - public func determineComposerPhpVersion() { - let path = "\(absolutePath!)/composer.json" - - do { - if Filesystem.fileExists(path) { - let decoded = try JSONDecoder().decode( - ComposerJson.self, - from: String(contentsOf: URL(fileURLWithPath: path), encoding: .utf8).data(using: .utf8)! - ) - - (self.composerPhp, self.composerPhpSource) = decoded.getPhpVersion() - self.notableComposerDependencies = decoded.getNotableDependencies() - } - } catch { - Log.err("Something went wrong reading the composer JSON file.") - } - - if self.composerPhp == "???" { - return - } - - // Split the composer list (on "|") to evaluate multiple constraints - // For example, for Laravel 8 projects the value is "^7.3|^8.0" - self.composerPhpCompatibleWithLinked = - self.composerPhp.split(separator: "|").map { string in - return PhpVersionNumberCollection.make(from: [PhpEnv.phpInstall.version.long]) - .matching(constraint: string.trimmingCharacters(in: .whitespacesAndNewlines)) - .count > 0 - }.contains(true) - } - - /** - Determine the driver to be displayed in the list of sites. In v5.0, this has been changed - to load the "framework" or "project type" instead. - */ - public func determineDriver() { - self.determineDriverViaComposer() - - if self.driver == nil { - self.driver = PhpFrameworks.detectFallbackDependency(self.absolutePath) - } - } - - /** - Check the dependency list and see if a particular dependency can't be found. - We'll revert the dependency list so that Laravel and Symfony are detected last. - - (Some other frameworks might use Laravel, so if we found it first the detection would be incorrect: - this would happen with Statamic, for example.) - */ - private func determineDriverViaComposer() { - self.driverDeterminedByComposer = true - - PhpFrameworks.DependencyList.reversed().forEach { (key: String, value: String) in - if self.notableComposerDependencies.keys.contains(key) { - self.driver = value - } - } - } - - @available(*, deprecated, renamed: "determineDriver") - private func determineDriverViaValet() { - let driver = Shell.pipe("cd '\(absolutePath!)' && valet which", requiresPath: true) - if driver.contains("This site is served by") { - self.driver = driver - .replacingOccurrences(of: "This site is served by [", with: "") - .replacingOccurrences(of: "ValetDriver].\n", with: "") - } else { - self.driver = nil - } - } - } - - struct Configuration: Decodable { - /// Top level domain suffix. Usually "test" but can be set to something else. - /// - Important: Does not include the actual dot. ("test", not ".test"!) - let tld: String - - /// The paths that need to be checked. - let paths: [String] - - /// The loopback address. Optional. - let loopback: String? - - /// The default site that is served if the domain is not found. Optional. - let defaultSite: String? - - private enum CodingKeys: String, CodingKey { - case tld, paths, loopback, defaultSite = "default" - } - } - } diff --git a/phpmon/Domain/SiteList/SiteListCell.swift b/phpmon/Domain/SiteList/SiteListCell.swift index 8a24f50..f4593a4 100644 --- a/phpmon/Domain/SiteList/SiteListCell.swift +++ b/phpmon/Domain/SiteList/SiteListCell.swift @@ -80,8 +80,8 @@ class SiteListCell: NSTableCellView alert.messageText = "alert.composer_php_requirement.title" .localized("\(site.name!).\(Valet.shared.config.tld)", site.composerPhp) - alert.informativeText = "alert.composer_php_requirement.info" - .localized(site.composerPhpSource) + alert.informativeText = "alert.composer_php_requirement.type.\(site.composerPhpSource.rawValue)" + .localized alert.addButton(withTitle: "site_link.close".localized) diff --git a/phpmon/Localizable.strings b/phpmon/Localizable.strings index caf0769..c55a0d4 100644 --- a/phpmon/Localizable.strings +++ b/phpmon/Localizable.strings @@ -196,8 +196,11 @@ problem manually, using your own Terminal app (this just shows you the output)." "alert.composer_success.info" = "Your global Composer dependencies have been successfully updated."; // Composer Version -"alert.composer_php_requirement.title" = "`%@` has the following PHP requirement: \"php\":\n\"%@\"."; -"alert.composer_php_requirement.info" = "This required PHP version was determined by checking the `%@` field in the `composer.json` file when the site list was last refreshed."; +"alert.composer_php_requirement.title" = "`%@` has the following PHP requirement: %@."; +"alert.composer_php_requirement.type.unknown" = "The required PHP version was determined by an unknown factor."; +"alert.composer_php_requirement.type.require" = "This required PHP version was determined by checking the `require` field in the `composer.json` file when the site list was last refreshed."; +"alert.composer_php_requirement.type.platform" = "This required PHP version was determined by checking the `platform` field in the `composer.json` file when the site list was last refreshed."; +"alert.composer_php_requirement.type.valetphprc" = "This required PHP version was determined by checking the .valetphprc file in your project's directory."; // Suggest Fix My Valet "alert.php_switch_failed.title" = "Switching to PHP %@ seems to have failed.";