Some checks failed
gitea-openium/resgen.swift/pipeline/head There was a failure building this commit
Reviewed-on: #1
51 lines
1.5 KiB
Swift
51 lines
1.5 KiB
Swift
//
|
|
// 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)
|
|
|
|
return Self.parseLines(stringsByLines, platform: platform)
|
|
}
|
|
|
|
static func parseLines(_ lines: [String], platform: PlatormTag) -> [ParsedImage] {
|
|
var imagesToGenerate = [ParsedImage]()
|
|
|
|
lines.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)
|
|
}
|
|
}
|
|
}
|