From f679231ade77e496b29a4f77a8887494693f94a6 Mon Sep 17 00:00:00 2001 From: Nico Verbruggen Date: Thu, 5 May 2022 20:09:40 +0200 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Cleanup?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- phpmon/Common/PHP/PhpConfigurationFile.swift | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/phpmon/Common/PHP/PhpConfigurationFile.swift b/phpmon/Common/PHP/PhpConfigurationFile.swift index 6a73250..c0ab7bb 100644 --- a/phpmon/Common/PHP/PhpConfigurationFile.swift +++ b/phpmon/Common/PHP/PhpConfigurationFile.swift @@ -43,9 +43,12 @@ class PhpConfigurationFile { */ private static func parseConfig(from lines: [String]) -> Config { var config = Config() + var currentSectionName = "main" + for line in lines { let line = trim(line) + if line.hasPrefix("[") && line.hasSuffix("]") { currentSectionName = parseSectionHeader(line) } else if let (key, value) = parseLine(line) { @@ -54,15 +57,16 @@ class PhpConfigurationFile { config[currentSectionName] = section } } + return config } /** Remove all whitespace and additional characters from individual lines. */ - private static func trim(_ s: String) -> String { + private static func trim(_ string: String) -> String { let whitespaces = CharacterSet(charactersIn: " \n\r\t") - return s.trimmingCharacters(in: whitespaces) + return string.trimmingCharacters(in: whitespaces) } /** @@ -96,9 +100,11 @@ class PhpConfigurationFile { maxSplits: 1, omittingEmptySubsequences: false ) + if !parts.isEmpty { return String(parts[0]) } + return "" } @@ -108,6 +114,7 @@ class PhpConfigurationFile { private static func parseSectionHeader(_ line: String) -> String { let from = line.index(after: line.startIndex) let to = line.index(before: line.endIndex) + return line[from.. (String, String)? { let parts = stripComment(line) .split(separator: "=", maxSplits: 1) + if parts.count == 2 { let k = trim(String(parts[0])) let v = trim(String(parts[1])) return (k, v) } + return nil }