Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2019
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.69 KB | None | 0 0
  1. private def csearch(request: SearchRequest): IO[Either[ErrType, List[String]]] = IO {
  2. val indexDir = cindexDir.indexDirAs[String]
  3. val env = ("CSEARCHINDEX", indexDir)
  4. val log = ProcessLogger((o: String) => _.asRight, (e: String) => ErrType(_).asLeft)
  5. logger.debug(s"running CSEARCHINDEX=$indexDir ${arguments(request).mkString(" ")}")
  6. for {
  7. processResults <- IO((Process(arguments(request), None, env) #| Seq("head", "-1001")).lineStream_!(log).toList)
  8. (errors, success) = processResults.partition(_.isLeft)
  9. } yield if (errors.size > 0)
  10. errors.map(_.left.get).head
  11. else
  12. success.map(_.right.get)
  13. }.flatten
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement