Files
resgen.swift/Sources/ToolCore/Shell.swift
Thibaut Schmitt 264c221604
Some checks failed
gitea-openium/resgen.swift/pipeline/head There was a failure building this commit
Refactor in one unique command with subcommand + add a new command to generate ressources from a configuration file
2022-08-30 17:02:11 +02:00

52 lines
1.5 KiB
Swift

//
// Shell.swift
//
//
// Created by Thibaut Schmitt on 22/12/2021.
//
import Foundation
public class Shell {
@discardableResult
public static func shell(launchPath: String = "/usr/bin/env", _ args: String...) -> (terminationStatus: Int32, output: String?) {
let task = Process()
task.launchPath = launchPath
task.arguments = args
let pipe = Pipe()
task.standardOutput = pipe
try? task.run()
task.waitUntilExit()
let data = pipe.fileHandleForReading.readDataToEndOfFile()
guard let output: String = String(data: data, encoding: .utf8) else {
return (terminationStatus: task.terminationStatus, output: nil)
}
return (terminationStatus: task.terminationStatus, output: output)
}
@discardableResult
public static func shell(launchPath: String = "/usr/bin/env", _ args: [String]) -> (terminationStatus: Int32, output: String?) {
let task = Process()
task.launchPath = launchPath
task.arguments = args
let pipe = Pipe()
task.standardOutput = pipe
task.launch()
task.waitUntilExit()
let data = pipe.fileHandleForReading.readDataToEndOfFile()
guard let output: String = String(data: data, encoding: .utf8) else {
return (terminationStatus: task.terminationStatus, output: nil)
}
return (terminationStatus: task.terminationStatus, output: output)
}
}