From b0c62e226a2502cbe76f39ba86ec8424ed232fc3 Mon Sep 17 00:00:00 2001 From: Nico Verbruggen Date: Sun, 15 May 2022 15:15:49 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=8C=20Code=20cleanup?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PHP Monitor.xcodeproj/project.pbxproj | 34 +++++++++++++------ .../Parsers/NginxConfigurationTest.swift | 16 ++++----- ...iTest.swift => PhpConfigurationTest.swift} | 4 +-- phpmon/Common/PHP/ActivePhpInstallation.swift | 16 ++++----- phpmon/Common/PHP/PhpConfigurationFile.swift | 29 ++++++++++++---- phpmon/Common/Protocols/CreatedFromFile.swift | 15 ++++++++ ...ion.swift => NginxConfigurationFile.swift} | 11 +++--- .../ProxyScanner/ValetProxyScanner.swift | 2 +- .../Valet/Proxies/ValetProxy.swift | 2 +- .../Integrations/Valet/Sites/ValetSite.swift | 2 +- 10 files changed, 87 insertions(+), 44 deletions(-) rename phpmon-tests/Parsers/{PhpIniTest.swift => PhpConfigurationTest.swift} (75%) create mode 100644 phpmon/Common/Protocols/CreatedFromFile.swift rename phpmon/Domain/Integrations/Nginx/{NginxConfiguration.swift => NginxConfigurationFile.swift} (91%) diff --git a/PHP Monitor.xcodeproj/project.pbxproj b/PHP Monitor.xcodeproj/project.pbxproj index 94f94bc..8c19794 100644 --- a/PHP Monitor.xcodeproj/project.pbxproj +++ b/PHP Monitor.xcodeproj/project.pbxproj @@ -9,6 +9,8 @@ /* Begin PBXBuildFile section */ 5420395926135DC100FB00FA /* PrefsVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5420395826135DC100FB00FA /* PrefsVC.swift */; }; 5420395F2613607600FB00FA /* Preferences.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5420395E2613607600FB00FA /* Preferences.swift */; }; + 5489625828312FAD004F647A /* CreatedFromFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5489625728312FAD004F647A /* CreatedFromFile.swift */; }; + 5489625928313231004F647A /* CreatedFromFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5489625728312FAD004F647A /* CreatedFromFile.swift */; }; 54A18D40282A566E000A0D81 /* nginx-secure-proxy-custom-tld.test in Resources */ = {isa = PBXBuildFile; fileRef = 54A18D3F282A566E000A0D81 /* nginx-secure-proxy-custom-tld.test */; }; 54B48B5F275F66AE006D90C5 /* Application.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54B48B5E275F66AE006D90C5 /* Application.swift */; }; 54B48B60275F66AE006D90C5 /* Application.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54B48B5E275F66AE006D90C5 /* Application.swift */; }; @@ -127,7 +129,7 @@ C46FA23F246C358E00944F05 /* StringExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C46FA23E246C358E00944F05 /* StringExtension.swift */; }; C46FA9882822EFDC00D78807 /* PhpConfigurationFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = C46FA9872822EFDC00D78807 /* PhpConfigurationFile.swift */; }; C46FA9892822EFDC00D78807 /* PhpConfigurationFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = C46FA9872822EFDC00D78807 /* PhpConfigurationFile.swift */; }; - C46FA98C2822F08F00D78807 /* PhpIniTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = C46FA98A2822F08F00D78807 /* PhpIniTest.swift */; }; + C46FA98C2822F08F00D78807 /* PhpConfigurationTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = C46FA98A2822F08F00D78807 /* PhpConfigurationTest.swift */; }; C473319F2470923A009A0597 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = C473319E2470923A009A0597 /* Localizable.strings */; }; C47331A2247093B7009A0597 /* StatusMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = C47331A1247093B7009A0597 /* StatusMenu.swift */; }; C474B00624C0E98C00066A22 /* LocalNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = C474B00524C0E98C00066A22 /* LocalNotification.swift */; }; @@ -199,8 +201,8 @@ C4CE3BBA27B31F670086CA49 /* ComposerWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4CE3BB927B31F670086CA49 /* ComposerWindow.swift */; }; C4CE3BBB27B324230086CA49 /* MainMenu+Switcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4CE3BB727B31F2E0086CA49 /* MainMenu+Switcher.swift */; }; C4CE3BBC27B324250086CA49 /* ComposerWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4CE3BB927B31F670086CA49 /* ComposerWindow.swift */; }; - C4D5CFCA27E0F9CD00035329 /* NginxConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D5CFC927E0F9CD00035329 /* NginxConfiguration.swift */; }; - C4D5CFCB27E0F9CD00035329 /* NginxConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D5CFC927E0F9CD00035329 /* NginxConfiguration.swift */; }; + C4D5CFCA27E0F9CD00035329 /* NginxConfigurationFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D5CFC927E0F9CD00035329 /* NginxConfigurationFile.swift */; }; + C4D5CFCB27E0F9CD00035329 /* NginxConfigurationFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D5CFC927E0F9CD00035329 /* NginxConfigurationFile.swift */; }; C4D8016622B1584700C6DA1B /* Startup.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D8016522B1584700C6DA1B /* Startup.swift */; }; C4D89BC62783C99400A02B68 /* ComposerJson.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D89BC52783C99400A02B68 /* ComposerJson.swift */; }; C4D936C927E3EB6100BD69FE /* PhpHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D936C827E3EB6100BD69FE /* PhpHelper.swift */; }; @@ -279,6 +281,7 @@ /* Begin PBXFileReference section */ 5420395826135DC100FB00FA /* PrefsVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrefsVC.swift; sourceTree = ""; }; 5420395E2613607600FB00FA /* Preferences.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Preferences.swift; sourceTree = ""; }; + 5489625728312FAD004F647A /* CreatedFromFile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreatedFromFile.swift; sourceTree = ""; }; 54A18D3F282A566E000A0D81 /* nginx-secure-proxy-custom-tld.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "nginx-secure-proxy-custom-tld.test"; sourceTree = ""; }; 54B48B5E275F66AE006D90C5 /* Application.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Application.swift; sourceTree = ""; }; 54D9E0AC27E4F51E003B9AD9 /* HotKeysController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HotKeysController.swift; sourceTree = ""; }; @@ -354,7 +357,7 @@ C46E206F2829D27F00D909D6 /* AppUpdaterCheckTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppUpdaterCheckTest.swift; sourceTree = ""; }; C46FA23E246C358E00944F05 /* StringExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StringExtension.swift; sourceTree = ""; }; C46FA9872822EFDC00D78807 /* PhpConfigurationFile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhpConfigurationFile.swift; sourceTree = ""; }; - C46FA98A2822F08F00D78807 /* PhpIniTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhpIniTest.swift; sourceTree = ""; }; + C46FA98A2822F08F00D78807 /* PhpConfigurationTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhpConfigurationTest.swift; sourceTree = ""; }; C473319E2470923A009A0597 /* Localizable.strings */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; path = Localizable.strings; sourceTree = ""; }; C47331A1247093B7009A0597 /* StatusMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatusMenu.swift; sourceTree = ""; }; C474B00524C0E98C00066A22 /* LocalNotification.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalNotification.swift; sourceTree = ""; }; @@ -399,7 +402,7 @@ C4CCBA6B275C567B008C7055 /* PMWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PMWindowController.swift; sourceTree = ""; }; C4CE3BB727B31F2E0086CA49 /* MainMenu+Switcher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "MainMenu+Switcher.swift"; sourceTree = ""; }; C4CE3BB927B31F670086CA49 /* ComposerWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComposerWindow.swift; sourceTree = ""; }; - C4D5CFC927E0F9CD00035329 /* NginxConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NginxConfiguration.swift; sourceTree = ""; }; + C4D5CFC927E0F9CD00035329 /* NginxConfigurationFile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NginxConfigurationFile.swift; sourceTree = ""; }; C4D8016522B1584700C6DA1B /* Startup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Startup.swift; sourceTree = ""; }; C4D89BC52783C99400A02B68 /* ComposerJson.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComposerJson.swift; sourceTree = ""; }; C4D936C827E3EB6100BD69FE /* PhpHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhpHelper.swift; sourceTree = ""; }; @@ -468,6 +471,14 @@ path = Preferences; sourceTree = ""; }; + 5489625628312F95004F647A /* Protocols */ = { + isa = PBXGroup; + children = ( + 5489625728312FAD004F647A /* CreatedFromFile.swift */, + ); + path = Protocols; + sourceTree = ""; + }; 54B20EDF263AA22C00D3250E /* PHP */ = { isa = PBXGroup; children = ( @@ -819,6 +830,7 @@ C44CCD4327AFE93300CE40E5 /* Errors */, C4F8C0A222D4F100002EFE61 /* Extensions */, C4811D2822D70D9C00B5F6B3 /* Helpers */, + 5489625628312F95004F647A /* Protocols */, ); path = Common; sourceTree = ""; @@ -846,7 +858,7 @@ C4C0E8DA27F887CC002D32A9 /* Nginx */ = { isa = PBXGroup; children = ( - C4D5CFC927E0F9CD00035329 /* NginxConfiguration.swift */, + C4D5CFC927E0F9CD00035329 /* NginxConfigurationFile.swift */, ); path = Nginx; sourceTree = ""; @@ -875,7 +887,7 @@ children = ( C4AF9F76275447F100D44ED0 /* ValetConfigurationTest.swift */, C4F780AD25D80B37000DBC97 /* PhpExtensionTest.swift */, - C46FA98A2822F08F00D78807 /* PhpIniTest.swift */, + C46FA98A2822F08F00D78807 /* PhpConfigurationTest.swift */, C43A8A2325D9D20D00591B77 /* HomebrewPackageTest.swift */, C42CFB1927DFE8BD00862737 /* NginxConfigurationTest.swift */, ); @@ -1156,6 +1168,7 @@ C4C0E8EA27F88B80002D32A9 /* ValetProxy+Fake.swift in Sources */, 5420395926135DC100FB00FA /* PrefsVC.swift in Sources */, C43603A0275E67610028EFC6 /* AppDelegate+Notifications.swift in Sources */, + 5489625828312FAD004F647A /* CreatedFromFile.swift in Sources */, C4068CA727B07A1300544CD5 /* SelectPreferenceView.swift in Sources */, C4080FF627BD8C6400BF2C6B /* BetterAlert.swift in Sources */, C4E0F7ED27BEBDA9007475F2 /* NSWindowExtension.swift in Sources */, @@ -1232,7 +1245,7 @@ C476FF9822B0DD830098105B /* Alert.swift in Sources */, C474B00624C0E98C00066A22 /* LocalNotification.swift in Sources */, C48D0C9625CC80B100CC7490 /* HeaderView.swift in Sources */, - C4D5CFCA27E0F9CD00035329 /* NginxConfiguration.swift in Sources */, + C4D5CFCA27E0F9CD00035329 /* NginxConfigurationFile.swift in Sources */, C4CE3BBA27B31F670086CA49 /* ComposerWindow.swift in Sources */, C4D9ADC8277611A0007277F4 /* InternalSwitcher.swift in Sources */, C4080FFA27BD956700BF2C6B /* BetterAlertVC.swift in Sources */, @@ -1280,7 +1293,7 @@ C4F780CC25D80B75000DBC97 /* ActivePhpInstallation.swift in Sources */, 54D9E0BB27E4F51E003B9AD9 /* ModifierFlagsExtension.swift in Sources */, C4F780B125D80B4D000DBC97 /* PhpExtension.swift in Sources */, - C4D5CFCB27E0F9CD00035329 /* NginxConfiguration.swift in Sources */, + C4D5CFCB27E0F9CD00035329 /* NginxConfigurationFile.swift in Sources */, C4068CA827B07A1300544CD5 /* SelectPreferenceView.swift in Sources */, C4F780CE25D80B75000DBC97 /* LocalNotification.swift in Sources */, C40C7F2927721FF600DDDCDC /* ActivePhpInstallation+Checks.swift in Sources */, @@ -1299,7 +1312,7 @@ C4C0E8E327F88B13002D32A9 /* ValetSiteScanner.swift in Sources */, C4CCBA6D275C567B008C7055 /* PMWindowController.swift in Sources */, C4B5635F276AB09000F12CCB /* VersionExtractor.swift in Sources */, - C46FA98C2822F08F00D78807 /* PhpIniTest.swift in Sources */, + C46FA98C2822F08F00D78807 /* PhpConfigurationTest.swift in Sources */, C4BF90C127C57C220054E78C /* MainMenu+FixMyValet.swift in Sources */, C4C0E8EB27F88B80002D32A9 /* ValetProxy+Fake.swift in Sources */, C4F2E4382752F08D0020E974 /* HomebrewDiagnostics.swift in Sources */, @@ -1327,6 +1340,7 @@ C417DC75277614690015E6EE /* Helpers.swift in Sources */, C4080FF727BD8C6400BF2C6B /* BetterAlert.swift in Sources */, C4B97B7C275CF20A003F3378 /* App+GlobalHotkey.swift in Sources */, + 5489625928313231004F647A /* CreatedFromFile.swift in Sources */, 54D9E0B327E4F51E003B9AD9 /* HotKeysController.swift in Sources */, C4B97B79275CF1B5003F3378 /* App+ActivationPolicy.swift in Sources */, C4CE3BBB27B324230086CA49 /* MainMenu+Switcher.swift in Sources */, diff --git a/phpmon-tests/Parsers/NginxConfigurationTest.swift b/phpmon-tests/Parsers/NginxConfigurationTest.swift index 15a73af..ddbc7fc 100644 --- a/phpmon-tests/Parsers/NginxConfigurationTest.swift +++ b/phpmon-tests/Parsers/NginxConfigurationTest.swift @@ -37,43 +37,43 @@ class NginxConfigurationTest: XCTestCase { func testCanDetermineSiteNameAndTld() throws { XCTAssertEqual( "nginx-site", - NginxConfiguration.from(filePath: NginxConfigurationTest.regularUrl.path)?.domain + NginxConfigurationFile.from(filePath: NginxConfigurationTest.regularUrl.path)?.domain ) XCTAssertEqual( "test", - NginxConfiguration.from(filePath: NginxConfigurationTest.regularUrl.path)?.tld + NginxConfigurationFile.from(filePath: NginxConfigurationTest.regularUrl.path)?.tld ) } func testCanDetermineIsolation() throws { XCTAssertNil( - NginxConfiguration.from(filePath: NginxConfigurationTest.regularUrl.path)?.isolatedVersion + NginxConfigurationFile.from(filePath: NginxConfigurationTest.regularUrl.path)?.isolatedVersion ) XCTAssertEqual( "8.1", - NginxConfiguration.from(filePath: NginxConfigurationTest.isolatedUrl.path)?.isolatedVersion + NginxConfigurationFile.from(filePath: NginxConfigurationTest.isolatedUrl.path)?.isolatedVersion ) } func testCanDetermineProxy() throws { - let proxied = NginxConfiguration.from(filePath: NginxConfigurationTest.proxyUrl.path)! + let proxied = NginxConfigurationFile.from(filePath: NginxConfigurationTest.proxyUrl.path)! XCTAssertTrue(proxied.contents.contains("# valet stub: proxy.valet.conf")) XCTAssertEqual("http://127.0.0.1:90", proxied.proxy) - let normal = NginxConfiguration.from(filePath: NginxConfigurationTest.regularUrl.path)! + let normal = NginxConfigurationFile.from(filePath: NginxConfigurationTest.regularUrl.path)! XCTAssertFalse(normal.contents.contains("# valet stub: proxy.valet.conf")) XCTAssertEqual(nil, normal.proxy) } func testCanDetermineSecuredProxy() throws { - let proxied = NginxConfiguration.from(filePath: NginxConfigurationTest.secureProxyUrl.path)! + let proxied = NginxConfigurationFile.from(filePath: NginxConfigurationTest.secureProxyUrl.path)! XCTAssertTrue(proxied.contents.contains("# valet stub: secure.proxy.valet.conf")) XCTAssertEqual("http://127.0.0.1:90", proxied.proxy) } func testCanDetermineProxyWithCustomTld() throws { - let proxied = NginxConfiguration.from(filePath: NginxConfigurationTest.customTldProxyUrl.path)! + let proxied = NginxConfigurationFile.from(filePath: NginxConfigurationTest.customTldProxyUrl.path)! XCTAssertTrue(proxied.contents.contains("# valet stub: secure.proxy.valet.conf")) XCTAssertEqual("http://localhost:8080", proxied.proxy) } diff --git a/phpmon-tests/Parsers/PhpIniTest.swift b/phpmon-tests/Parsers/PhpConfigurationTest.swift similarity index 75% rename from phpmon-tests/Parsers/PhpIniTest.swift rename to phpmon-tests/Parsers/PhpConfigurationTest.swift index d6f20b6..c939778 100644 --- a/phpmon-tests/Parsers/PhpIniTest.swift +++ b/phpmon-tests/Parsers/PhpConfigurationTest.swift @@ -8,14 +8,14 @@ import XCTest -class PhpIniTest: XCTestCase { +class PhpConfigurationTest: XCTestCase { static var phpIniFileUrl: URL { return Bundle(for: Self.self).url(forResource: "php", withExtension: "ini")! } func testCanLoadExtension() throws { - let iniFile = PhpInitializationFile(fileUrl: Self.phpIniFileUrl) + let iniFile = PhpConfigurationFile.from(filePath: Self.phpIniFileUrl.path) XCTAssertNotNil(iniFile) } diff --git a/phpmon/Common/PHP/ActivePhpInstallation.swift b/phpmon/Common/PHP/ActivePhpInstallation.swift index d3a4d68..cb1a0e2 100644 --- a/phpmon/Common/PHP/ActivePhpInstallation.swift +++ b/phpmon/Common/PHP/ActivePhpInstallation.swift @@ -52,11 +52,9 @@ class ActivePhpInstallation { // Load extension information let mainConfigurationFileUrl = URL(fileURLWithPath: "\(Paths.etcPath)/php/\(version.short)/php.ini") - iniFiles.append( - PhpConfigurationFile(fileUrl: mainConfigurationFileUrl) - ) - - // extensions.append(contentsOf: PhpExtension.load(from: mainConfigurationFileUrl)) + if let file = PhpConfigurationFile.from(filePath: mainConfigurationFileUrl.path) { + iniFiles.append(file) + } // Get configuration values limits = Limits( @@ -73,11 +71,9 @@ class ActivePhpInstallation { // See if any extensions are present in said .ini files paths.forEach { (iniFilePath) in - let fileUrl = URL(fileURLWithPath: iniFilePath) - - iniFiles.append( - PhpConfigurationFile(fileUrl: fileUrl) - ) + if let file = PhpConfigurationFile.from(filePath: iniFilePath) { + iniFiles.append(file) + } } } diff --git a/phpmon/Common/PHP/PhpConfigurationFile.swift b/phpmon/Common/PHP/PhpConfigurationFile.swift index c0ab7bb..cd59c42 100644 --- a/phpmon/Common/PHP/PhpConfigurationFile.swift +++ b/phpmon/Common/PHP/PhpConfigurationFile.swift @@ -8,7 +8,7 @@ import Foundation -class PhpConfigurationFile { +class PhpConfigurationFile: CreatedFromFile { typealias Section = [String: String] typealias Config = [String: Section] @@ -22,14 +22,31 @@ class PhpConfigurationFile { /// The actual content of the configuration file. var content: Config - init(fileUrl: URL) { - self.file = fileUrl.path + static func from(filePath: String) -> Self? { + let path = filePath.replacingOccurrences( + of: "~", + with: "/Users/\(Paths.whoami)" + ) - let rawString = (try? String(contentsOf: fileUrl, encoding: .utf8)) ?? "" + do { + let fileContents = try String(contentsOfFile: path) - self.extensions = PhpExtension.load(from: fileUrl) + return Self.init( + path: path, + contents: fileContents + ) + } catch { + Log.warn("Could not read the PHP configuration file at: `\(filePath)`") + return nil + } + } - self.content = Self.parseConfig(from: rawString.components(separatedBy: "\n")) + required init(path: String, contents: String) { + self.file = path + + self.extensions = PhpExtension.load(from: URL(string: path)!) + + self.content = Self.parseConfig(from: contents.components(separatedBy: "\n")) dump(self) } diff --git a/phpmon/Common/Protocols/CreatedFromFile.swift b/phpmon/Common/Protocols/CreatedFromFile.swift new file mode 100644 index 0000000..0fb46b5 --- /dev/null +++ b/phpmon/Common/Protocols/CreatedFromFile.swift @@ -0,0 +1,15 @@ +// +// CreatedFromFile.swift +// PHP Monitor +// +// Created by Nico Verbruggen on 15/05/2022. +// Copyright © 2022 Nico Verbruggen. All rights reserved. +// + +import Foundation + +protocol CreatedFromFile { + + static func from(filePath: String) -> Self? + +} diff --git a/phpmon/Domain/Integrations/Nginx/NginxConfiguration.swift b/phpmon/Domain/Integrations/Nginx/NginxConfigurationFile.swift similarity index 91% rename from phpmon/Domain/Integrations/Nginx/NginxConfiguration.swift rename to phpmon/Domain/Integrations/Nginx/NginxConfigurationFile.swift index e27270b..85846c3 100644 --- a/phpmon/Domain/Integrations/Nginx/NginxConfiguration.swift +++ b/phpmon/Domain/Integrations/Nginx/NginxConfigurationFile.swift @@ -1,5 +1,5 @@ // -// NginxConfiguration.swift +// NginxConfigurationFile.swift // PHP Monitor // // Created by Nico Verbruggen on 15/03/2022. @@ -8,7 +8,7 @@ import Foundation -class NginxConfiguration { +class NginxConfigurationFile: CreatedFromFile { /** Contents of the Nginx file in question, as a string. */ var contents: String! @@ -19,7 +19,7 @@ class NginxConfiguration { /** The TLD of the domain, usually derived from the name of the file. */ var tld: String - static func from(filePath: String) -> NginxConfiguration? { + static func from(filePath: String) -> Self? { let path = filePath.replacingOccurrences( of: "~", with: "/Users/\(Paths.whoami)" @@ -27,7 +27,8 @@ class NginxConfiguration { do { let fileContents = try String(contentsOfFile: path) - return NginxConfiguration.init( + + return Self.init( path: path, contents: fileContents ) @@ -37,7 +38,7 @@ class NginxConfiguration { } } - init(path: String, contents: String) { + required init(path: String, contents: String) { let domain = String(path.split(separator: "/").last!) let tld = String(domain.split(separator: ".").last!) diff --git a/phpmon/Domain/Integrations/Valet/Proxies/ProxyScanner/ValetProxyScanner.swift b/phpmon/Domain/Integrations/Valet/Proxies/ProxyScanner/ValetProxyScanner.swift index 1941822..4c1f71e 100644 --- a/phpmon/Domain/Integrations/Valet/Proxies/ProxyScanner/ValetProxyScanner.swift +++ b/phpmon/Domain/Integrations/Valet/Proxies/ProxyScanner/ValetProxyScanner.swift @@ -14,7 +14,7 @@ class ValetProxyScanner: ProxyScanner { .default .contentsOfDirectory(atPath: directoryPath) .compactMap { - return NginxConfiguration.from(filePath: "\(directoryPath)/\($0)") + return NginxConfigurationFile.from(filePath: "\(directoryPath)/\($0)") } .filter { return $0.proxy != nil diff --git a/phpmon/Domain/Integrations/Valet/Proxies/ValetProxy.swift b/phpmon/Domain/Integrations/Valet/Proxies/ValetProxy.swift index f74e3bd..d1fd5a5 100644 --- a/phpmon/Domain/Integrations/Valet/Proxies/ValetProxy.swift +++ b/phpmon/Domain/Integrations/Valet/Proxies/ValetProxy.swift @@ -14,7 +14,7 @@ class ValetProxy: DomainListable { var target: String var secured: Bool = false - init(_ configuration: NginxConfiguration) { + init(_ configuration: NginxConfigurationFile) { self.domain = configuration.domain self.tld = configuration.tld self.target = configuration.proxy! diff --git a/phpmon/Domain/Integrations/Valet/Sites/ValetSite.swift b/phpmon/Domain/Integrations/Valet/Sites/ValetSite.swift index 951ae04..398e2e2 100644 --- a/phpmon/Domain/Integrations/Valet/Sites/ValetSite.swift +++ b/phpmon/Domain/Integrations/Valet/Sites/ValetSite.swift @@ -225,7 +225,7 @@ class ValetSite: DomainListable { public static func isolatedVersion(_ filePath: String) -> String? { if Filesystem.fileExists(filePath) { - return NginxConfiguration + return NginxConfigurationFile .from(filePath: filePath)? .isolatedVersion ?? nil }