Issue #524
/// Any task that uses command line
public protocol UsesCommandLine: AnyObject {
var program: String { get }
var arguments: Set<String> { get set }
}
public extension UsesCommandLine {
func run() throws {
let command = "\(program) \(arguments.joined(separator: " "))"
Log.command(command)
_ = try Process().run(command: command)
}
}
class Build: UsesCommandLine {
public func run() throws {
arguments.insert("build")
try (self as UsesCommandLine).run()
}
}