Some checks failed
		
		
	
	gitea-openium/resgen.swift/pipeline/head There was a failure building this commit
				
			
		
			
				
	
	
		
			43 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Swift
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Swift
		
	
	
	
	
	
| //
 | |
| //  GeneratorChecker.swift
 | |
| //
 | |
| //
 | |
| //  Created by Thibaut Schmitt on 22/12/2021.
 | |
| //
 | |
| 
 | |
| import Foundation
 | |
| 
 | |
| public enum GeneratorChecker {
 | |
| 
 | |
|     /// Return `true` if  inputFile is newer than extensionFile, otherwise `false`
 | |
|     public static func shouldGenerate(force: Bool, inputFilePath: String, extensionFilePath: String) -> Bool {
 | |
|         guard force == false else {
 | |
|             return true
 | |
|         }
 | |
| 
 | |
|         return Self.isFile(inputFilePath, moreRecenThan: extensionFilePath)
 | |
|     }
 | |
| 
 | |
|     public static func isFile(_ fileOne: String, moreRecenThan fileTwo: String) -> Bool {
 | |
|         let fileOneURL = URL(fileURLWithPath: fileOne)
 | |
|         let fileTwoURL = URL(fileURLWithPath: fileTwo)
 | |
| 
 | |
|         let fileOneRessourceValues = try? fileOneURL.resourceValues(forKeys: [URLResourceKey.contentModificationDateKey])
 | |
|         let fileTwoRessourceValues = try? fileTwoURL.resourceValues(forKeys: [URLResourceKey.contentModificationDateKey])
 | |
| 
 | |
|         guard let fileOneModificationDate = fileOneRessourceValues?.contentModificationDate,
 | |
|               let fileTwoModificationDate = fileTwoRessourceValues?.contentModificationDate else {
 | |
|             print("⚠️ Could not compare file modication date. ⚠️ (assume than file is newer)")
 | |
|             // Date not available -> assume than fileOne is newer than fileTwo
 | |
|             return true
 | |
|         }
 | |
| 
 | |
|         if fileOneModificationDate >= fileTwoModificationDate {
 | |
|             debugPrint("File one is more recent than file two.")
 | |
|             return true
 | |
|         }
 | |
| 
 | |
|         return false
 | |
|     }
 | |
| }
 |