Add first draft of new osproc.readLines (#15429)
* Add first draft of new osproc.readLines * Add test for new osproc.readLines * Rename test to start w/t to run; Also add newline to output * Suppress hint messages. * Output should match this time. * Shoulda picked a program with simpler syntax than ..lol * Address https://github.com/nim-lang/Nim/pull/15429#issuecomment-701890898 and https://github.com/nim-lang/Nim/pull/15429#issuecomment-701985976 by factoring `readLines` into `iterator lines` and a wrapper `proc`. * Address https://github.com/nim-lang/Nim/pull/15429#issuecomment-702127289 and also add a `ReadIOEffect` tag to the iterator (called by the wrapper.. so it should need no separate tag, if I understand correctly).
This commit is contained in:
parent
531ed2dc36
commit
26d656e73e
3 changed files with 73 additions and 0 deletions
20
tests/osproc/treadlines.nim
Normal file
20
tests/osproc/treadlines.nim
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
discard """
|
||||
output: '''Error: cannot open 'a.nim'
|
||||
Error: cannot open 'b.nim'
|
||||
'''
|
||||
targets: "c"
|
||||
"""
|
||||
|
||||
import osproc
|
||||
|
||||
var ps: seq[Process] # compile & run 2 progs in parallel
|
||||
for prog in ["a", "b"]:
|
||||
ps.add startProcess("nim", "",
|
||||
["r", "--hint[Conf]=off", "--hint[Processing]=off", prog],
|
||||
options = {poUsePath, poDaemon, poStdErrToStdOut})
|
||||
|
||||
for p in ps:
|
||||
let (lines, exCode) = p.readLines
|
||||
if exCode != 0:
|
||||
for line in lines: echo line
|
||||
p.close
|
||||
Loading…
Add table
Add a link
Reference in a new issue