Files
i2p.i2p/launchers/macosx/I2PLauncher/subprocesses/ExecutionResult.swift

64 lines
1.7 KiB
Swift
Raw Normal View History

//
// ExecutionResult.swift
// I2PLauncher
//
// Created by Mikal Villa on 17/09/2018.
// Copyright © 2018 The I2P Project. All rights reserved.
//
import Foundation
public struct ExecutionResult {
/// Whether the output was captured
public let didCaptureOutput : Bool
/// The return status of the last subprocess
public var status: Int32 {
return pipelineStatuses.last!
}
/// Return status of all subprocesses in the pipeline
public let pipelineStatuses : [Int32]
/// The output of the subprocess. Empty string if no output was produced or not captured
public let output: String
/// The error output of the last subprocess. Empty string if no error output was produced or not captured
public var errors : String {
return pipelineErrors?.last ?? ""
}
/// The error output of all subprocesses in the pipeline. Empty string if no error output was produced or not captured
public let pipelineErrors : [String]?
/// The output, split by newline
/// - SeeAlso: `output`
public var outputLines : [String] {
return self.output.splitByNewline()
}
/// The error output, split by newline
/// - SeeAlso: `output`
public var errorsLines : [String] {
return self.errors.splitByNewline()
}
/// An execution result where no output was captured
init(pipelineStatuses: [Int32]) {
self.pipelineStatuses = pipelineStatuses
self.didCaptureOutput = false
self.pipelineErrors = nil
self.output = ""
}
/// An execution result where output was captured
init(pipelineStatuses: [Int32], pipelineErrors : [String], output : String) {
self.pipelineStatuses = pipelineStatuses
self.pipelineErrors = pipelineErrors
self.output = output
self.didCaptureOutput = true
}
}