forked from ungleich-public/cdist
allow to read stdin from different handle than sys.stdin in emulator
Signed-off-by: Nico Schottelius <nico@brief.schottelius.org>
This commit is contained in:
parent
e785092935
commit
7b51e22922
1 changed files with 4 additions and 3 deletions
|
@ -29,8 +29,9 @@ import cdist
|
||||||
from cdist import core
|
from cdist import core
|
||||||
|
|
||||||
class Emulator(object):
|
class Emulator(object):
|
||||||
def __init__(self, argv):
|
def __init__(self, argv, stdin=sys.stdin):
|
||||||
self.argv = argv
|
self.argv = argv
|
||||||
|
self.stdin = stdin
|
||||||
self.object_id = False
|
self.object_id = False
|
||||||
|
|
||||||
self.global_path = os.environ['__global']
|
self.global_path = os.environ['__global']
|
||||||
|
@ -148,13 +149,13 @@ class Emulator(object):
|
||||||
|
|
||||||
chunk_size = 8192
|
chunk_size = 8192
|
||||||
def _read_stdin(self):
|
def _read_stdin(self):
|
||||||
return sys.stdin.buffer.read(self.chunk_size)
|
return self.stdin.buffer.read(self.chunk_size)
|
||||||
def save_stdin(self):
|
def save_stdin(self):
|
||||||
"""If something is written to stdin, save it in the object as
|
"""If something is written to stdin, save it in the object as
|
||||||
$__object/stdin so it can be accessed in manifest and gencode-*
|
$__object/stdin so it can be accessed in manifest and gencode-*
|
||||||
scripts.
|
scripts.
|
||||||
"""
|
"""
|
||||||
if not sys.stdin.isatty():
|
if not self.stdin.isatty():
|
||||||
try:
|
try:
|
||||||
# go directly to file instead of using CdistObject's api
|
# go directly to file instead of using CdistObject's api
|
||||||
# as that does not support streaming
|
# as that does not support streaming
|
||||||
|
|
Loading…
Reference in a new issue