def writeHeaderOnceAndAdvanceIterator()

in src/main/scala/com/gu/zuora/fullexport/Impl.scala [230:240]


  def writeHeaderOnceAndAdvanceIterator(objectName: String, lines: Iterator[String]): Unit = {
      lines.nextOption() match { // WARNING: It is important to advance the iterator otherwise multiple header rows might be written
        case Some(header) if file"$scratchDir/$objectName-header.csv".exists =>
          // do nothing
        case Some(header) =>
          file"$scratchDir/$objectName-header.csv".appendLines(s"IsDeleted,$header")
          file"$outputDir/$objectName.csv".appendLines(s"IsDeleted,$header")
        case None =>
          Assert(s"Downloaded $objectName CSV file should have at least a header")
      }
  }