// // ImageFileParser.swift // // // Created by Thibaut Schmitt on 24/01/2022. // import Foundation class ImageFileParser { static func parse(_ inputFile: String, platform: PlatormTag) -> [ParsedImage] { let inputFileContent = try! String(contentsOfFile: inputFile, encoding: .utf8) let stringsByLines = inputFileContent.components(separatedBy: .newlines) var imagesToGenerate = [ParsedImage]() // Parse file stringsByLines.forEach { guard $0.removeLeadingTrailingWhitespace().isEmpty == false, $0.first != "#" else { return } let splittedLine = $0.split(separator: " ") let width: Int = { if splittedLine[2] == "?" { return -1 } return Int(splittedLine[2])! }() let height: Int = { if splittedLine[3] == "?" { return -1 } return Int(splittedLine[3])! }() let image = ParsedImage(name: String(splittedLine[1]), tags: String(splittedLine[0]), width: width, height: height) imagesToGenerate.append(image) } return imagesToGenerate.filter { $0.tags.contains(platform.rawValue) } } }