// // FontsConfiguration+Runnable.swift // // // Created by Thibaut Schmitt on 30/08/2022. // import Foundation extension FontsConfiguration: Runnable { func run(projectDirectory: String, force: Bool) { let args = getArguments(projectDirectory: projectDirectory, force: force) Fonts.main(args) } func getArguments(projectDirectory: String, force: Bool) -> [String] { var args = [String]() if force { args += ["-f"] } args += [ inputFile.prependIfRelativePath(projectDirectory) ] // Add optional parameters [ ("--extension-output-path", extensionOutputPath?.prependIfRelativePath(projectDirectory)), ("--extension-name", extensionName), ("--extension-name-ui-kit", extensionNameUIKit), ("--extension-suffix", extensionSuffix), ("--visibility", visibility), ("--static-members", staticMembers?.description) ].forEach { argumentName, argumentValue in if let argumentValue { args += [ argumentName, argumentValue ] } } // Add infoPlist paths if let infoPlistPaths { let adjustedPlistPaths = infoPlistPaths .split(separator: " ") .map { String($0).prependIfRelativePath(projectDirectory) } .joined(separator: " ") args += [ "--info-plist-paths", adjustedPlistPaths ] } return args } }