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