1- from ..compat import str
1+ from ..compat import str , sh , pbs_compat
22from ..utils import RingBuffer
33
44import os
@@ -32,10 +32,12 @@ def __init__(self, session, params={}, timeout=30):
3232 self .params = params
3333 self .params ["_bg" ] = True
3434 self .params ["_err" ] = open (os .devnull , "w" )
35- self .params ["_out_bufsize" ] = 8192
3635 self .errorlog = self .session .options .get ("errorlog" )
37- self .fd = None
38- self .timeout = timeout
36+
37+ if not pbs_compat :
38+ self .fd = None
39+ self .timeout = timeout
40+ self .params ["_out_bufsize" ] = 8192
3941
4042 def cmdline (self ):
4143 return str (self .cmd .bake (** self .params ))
@@ -46,30 +48,36 @@ def write_callback(data, queue, process):
4648 self .fd .write (data )
4749 self .process_alive = process .alive
4850
49- self .fd = RingBuffer ()
50- self .last_data_time = time .time ()
51-
5251 if self .errorlog :
5352 tmpfile = tempfile .NamedTemporaryFile (prefix = "livestreamer" ,
5453 suffix = ".err" , delete = False )
5554 self .params ["_err" ] = tmpfile
5655
57- self .params ["_out" ] = write_callback
56+ if not pbs_compat :
57+ self .fd = RingBuffer ()
58+ self .last_data_time = time .time ()
59+ self .params ["_out" ] = write_callback
5860
5961 stream = self .cmd (** self .params )
6062
6163 # Wait 0.5 seconds to see if program exited prematurely
6264 time .sleep (0.5 )
6365
64- self .process_alive = stream .process .alive
66+ if pbs_compat :
67+ self .process_alive = stream .process .returncode is None
68+ else :
69+ self .process_alive = stream .process .alive
6570
6671 if not self .process_alive :
6772 if self .errorlog :
6873 raise StreamError (("Error while executing subprocess, error output logged to: {0}" ).format (tmpfile .name ))
6974 else :
7075 raise StreamError ("Error while executing subprocess" )
7176
72- return self
77+ if pbs_compat :
78+ return stream .process .stdout
79+ else :
80+ return self
7381
7482 def read (self , size = - 1 ):
7583 if not self .fd :
0 commit comments