resgen.swift/Sources/Imagium/ImageFileParser.swift

48 lines
1.4 KiB
Swift

//
// ImageFileParser.swift
//
//
// Created by Thibaut Schmitt on 24/01/2022.
//
import Foundation
class ImageFileParser {
static func parse(_ inputFile: String, platform: PlatormTag) -> [ImageToGen] {
let inputFileContent = try! String(contentsOfFile: inputFile, encoding: .utf8)
let stringsByLines = inputFileContent.components(separatedBy: .newlines)
var imagesToGenerate = [ImageToGen]()
// 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 = ImageToGen(name: String(splittedLine[1]), tags: String(splittedLine[0]), width: width, height: height)
imagesToGenerate.append(image)
}
return imagesToGenerate.filter {
$0.tags.contains(platform.rawValue)
}
}
}