﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	launchpad_bug
14	[patch] Make streaming from stdin / to stdout work.	ericpollmann	zooko	"The documented feature of streaming a file in via stdin/stdout does not work.

$ cat foo.tar.gz | zfec -m5 -k3 - -ptest -v
Traceback (most recent call last):
  File ""/usr/local/bin/zfec"", line 8, in <module>
    load_entry_point('zfec==1.4.22', 'console_scripts', 'zfec')()
  File ""/Library/Python/2.6/site-packages/zfec-1.4.22-py2.6-macosx-10.6-universal.egg/zfec/cmdline_zfec.py"", line 60, in main
    args.inputfile.seek(0, 2)
IOError: [Errno 29] Illegal seek

I fixed this exception and a couple of other issues (compute pad for each chunk after the stream is fully read) as well as updates for the unit tests to verify the behavior is correct.  Finally, in verbose mode, this patch calls sys.stdin.flush() to make the status updates appear immediately rather than at the end.

It includes similar changes for zunfec to make streaming to stdout work as well, including moving verbose status messages from stdout to stderr so they do not corrupt the output file.

Now it works well:
$ cat foo.tar.gz | zfec -m5 -k3 - -ptest -v
Creating share file './test.0_5.fec'...
Creating share file './test.1_5.fec'...
Creating share file './test.2_5.fec'...
Creating share file './test.3_5.fec'...
Creating share file './test.4_5.fec'...
30MB ... 60MB ... 90MB ... 120MB ... 150MB ... 180MB ... 210MB ... 240MB ... 270MB ... 300MB ... 330MB ... 360MB ... 390MB ... 420MB ... 450MB ... 480MB ... 510MB ... 540MB ... 570MB ... 600MB ... 630MB ... 660MB ... 690MB ... 720MB ... 750MB ... 780MB ... 810MB ... 840MB ...
Done!
$ rm ./test.{0,4}_5.fec
$ zunfec -o - test.* -v > foo.tar.gz.new
30MB ... 60MB ... 90MB ... 120MB ... 150MB ... 180MB ... 210MB ... 240MB ... 270MB ... 300MB ... 330MB ... 360MB ... 390MB ... 420MB ... 450MB ... 480MB ... 510MB ... 540MB ... 570MB ... 600MB ... 630MB ... 660MB ... 690MB ... 720MB ... 750MB ... 780MB ... 810MB ... 840MB ...
Done!
$ diff foo.tar.gz foo.tar.gz.new
$
"	defect	new	major		component1			review-needed	davidsarah	
