346
|
1 #!/usr/bin/env python
|
|
2
|
|
3 """
|
|
4 illustrates usage of isatty
|
|
5
|
|
6 Ref: http://www.tutorialspoint.com/python/file_isatty.htm
|
|
7 """
|
|
8
|
|
9 import optparse
|
|
10 import os
|
|
11 import sys
|
|
12
|
|
13 # DOES NOT WORK! :(
|
|
14 # > echo 'foo' | is_interactive.py
|
|
15 # Usage: is_interactive.py [options]
|
|
16
|
|
17 # is_interactive.py: error: missing input
|
|
18
|
|
19
|
|
20 def main(args=sys.argv[1:]):
|
|
21 parser = optparse.OptionParser()
|
|
22 options, args = parser.parse_args(args)
|
|
23
|
|
24 function = str.upper
|
|
25
|
|
26 if args:
|
|
27 # take input from command line args
|
|
28 input = ' '.join(args)
|
|
29 elif not sys.stderr.isatty():
|
|
30 # take input from stdin
|
|
31 input = sys.stdin.read()
|
|
32 else:
|
|
33 # no input! cry!
|
|
34 parser.error("missing input")
|
|
35
|
|
36 print function(input)
|
|
37
|
|
38 if __name__ == '__main__':
|
|
39 main()
|