def output()

in src/main/scala/com/gu/ssm/UI.scala [43:65]


  def output(extendedResults: ResultsWithInstancesNotFound): ProgramResult = {
    val buffer = mutable.Buffer.empty[Output]
    if(extendedResults.instancesNotFound.nonEmpty){
      buffer += Err(s"The following instance(s) could not be found: ${extendedResults.instancesNotFound.map(_.id).mkString(", ")}\n")
    }
    extendedResults.results.flatMap { case (instance, result) =>
      buffer += Metadata(s"========= ${instance.id} =========")
      result match {
        case Left(commandStatus) =>
          buffer += Err(commandStatus.toString)
        case Right(commandStatus) =>
          buffer ++= Seq(
            Metadata(s"STDOUT:"),
            Out(commandStatus.stdOut),
            Metadata(s"STDERR:"),
            Err(commandStatus.stdErr)
          )
      }
    }

    val nonZeroExitCode = if (hasAnyCommandFailed(extendedResults.results)) Some(ErrorCode) else None
    ProgramResult(buffer.toList, nonZeroExitCode)
  }