1
0
mirror of https://github.com/nicoverbruggen/phpmon.git synced 2025-08-07 20:10:08 +02:00

Added test to parse the proxy address

This commit is contained in:
2022-03-31 18:27:26 +02:00
parent 94139a3669
commit 6470daf7d3
2 changed files with 28 additions and 7 deletions

View File

@ -33,4 +33,10 @@ class NginxConfigParserTest: XCTestCase {
)
}
func testCanDetermineProxy() throws {
let parsed = NginxConfigParser(filePath: NginxConfigParserTest.proxyUrl.path)
XCTAssertTrue(parsed.contents.contains("# valet stub: proxy.valet.conf"))
XCTAssertEqual("http://127.0.0.1:90", parsed.proxy)
}
}

View File

@ -18,6 +18,24 @@ class NginxConfigParser {
)
}
/**
Retrieves what address this domain is proxying.
*/
lazy var proxy: String? = {
let regex = try! NSRegularExpression(
pattern: #"proxy_pass (?<proxy>.*:\d*);"#,
options: []
)
guard let match = regex.firstMatch(in: contents, range: NSMakeRange(0, contents.count))
else { return nil }
return contents[Range(match.range(withName: "proxy"), in: contents)!]
}()
/**
Retrieves which isolated version is active for this domain.
*/
lazy var isolatedVersion: String? = {
let regex = try! NSRegularExpression(
// PHP versions have (so far) never needed multiple digits for version numbers
@ -25,14 +43,11 @@ class NginxConfigParser {
options: []
)
let match = regex.firstMatch(in: contents, range: NSMakeRange(0, contents.count))
guard let match = regex.firstMatch(in: contents, range: NSMakeRange(0, contents.count))
else { return nil }
if match == nil {
return nil
}
let major: String = contents[Range(match!.range(withName: "major"), in: contents)!]
let minor: String = contents[Range(match!.range(withName: "minor"), in: contents)!]
let major: String = contents[Range(match.range(withName: "major"), in: contents)!],
minor: String = contents[Range(match.range(withName: "minor"), in: contents)!]
return "\(major).\(minor)"
}()