Mercurial > hg > config
comparison python/is_interactive.py @ 346:7eaaf99e3182
dammit
| author | Jeff Hammel <jhammel@mozilla.com> |
|---|---|
| date | Mon, 24 Jun 2013 16:06:24 -0700 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 345:0694882a1ad8 | 346:7eaaf99e3182 |
|---|---|
| 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() |
