Package osh :: Package command :: Module stdin
[frames] | no frames]

Source Code for Module osh.command.stdin

 1  # osh 
 2  # Copyright (C) Jack Orenstein <jao@geophile.com> 
 3  # 
 4  # This program is free software; you can redistribute it and/or modify 
 5  # it under the terms of the GNU General Public License as published by 
 6  # the Free Software Foundation; either version 2 of the License, or 
 7  # (at your option) any later version. 
 8  # 
 9  # This program is distributed in the hope that it will be useful, 
10  # but WITHOUT ANY WARRANTY; without even the implied warranty of 
11  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
12  # GNU General Public License for more details. 
13  # 
14  # You should have received a copy of the GNU General Public License 
15  # along with this program; if not, write to the Free Software 
16  # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 
17   
18  """For API usage only, (for CLI use C{cat ... | osh ^ ...} syntax instead.) 
19  """ 
20   
21  import sys 
22   
23  import osh.core 
24   
25  # CLI 
26 -def _stdin():
27 return _Stdin()
28 29 # API
30 -def stdin():
31 """Each line of input from stdin is written to the output stream. 32 """ 33 return _Stdin()
34
35 -class _Stdin(osh.core.Generator):
36 37 _stdin = None 38 39 40 # object interface 41
42 - def __init__(self):
43 osh.core.Generator.__init__(self, '', (0, 0))
44 45 46 # BaseOp interface 47
48 - def setup(self):
49 pass
50
51 - def doc(self):
52 return __doc__
53 54 # Generator interface 55
56 - def execute(self):
57 eof = False 58 while not eof: 59 line = sys.stdin.readline() 60 if line: 61 if line.endswith('\n'): 62 line = line[:-1] 63 self.send(line) 64 else: 65 eof = True
66