summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2009-10-11 12:04:10 +0000
committerGeorg Brandl <georg@python.org>2009-10-11 12:04:10 +0000
commit54a8e9c637a0984e7e4ff6d1fbb1854c4b3b4ad8 (patch)
tree0f5fdf1de2e41e6fa8c0c2b167214a5c4672cde5
parent7d526997a5f9d113e6c17f651689c0a088d58411 (diff)
downloadcpython-54a8e9c637a0984e7e4ff6d1fbb1854c4b3b4ad8.tar.gz
Merged revisions 75350 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r75350 | georg.brandl | 2009-10-11 14:00:18 +0200 (So, 11 Okt 2009) | 1 line Use getopt in script.py demo. ........
-rwxr-xr-xDemo/scripts/script.py29
1 files changed, 19 insertions, 10 deletions
diff --git a/Demo/scripts/script.py b/Demo/scripts/script.py
index 174c13ea95..b490b17924 100755
--- a/Demo/scripts/script.py
+++ b/Demo/scripts/script.py
@@ -1,4 +1,5 @@
#! /usr/bin/env python
+
# script.py -- Make typescript of terminal session.
# Usage:
# -a Append to typescript.
@@ -6,28 +7,36 @@
# Author: Steen Lumholt.
-import os, time, sys
+import os, time, sys, getopt
import pty
def read(fd):
data = os.read(fd, 1024)
- file.write(data)
+ script.write(data)
return data
shell = 'sh'
filename = 'typescript'
-mode = 'w'
+mode = 'wb'
if 'SHELL' in os.environ:
shell = os.environ['SHELL']
-if '-a' in sys.argv:
- mode = 'a'
-if '-p' in sys.argv:
- shell = 'python'
-file = open(filename, mode)
+try:
+ opts, args = getopt.getopt(sys.argv[1:], 'ap')
+except getopt.error as msg:
+ print('%s: %s' % (sys.argv[0], msg))
+ sys.exit(2)
+
+for o, a in opts:
+ if o == '-a':
+ mode = 'ab'
+ elif o == '-p':
+ shell = 'python'
+
+script = open(filename, mode)
sys.stdout.write('Script started, file is %s\n' % filename)
-file.write('Script started on %s\n' % time.ctime(time.time()))
+script.write(('Script started on %s\n' % time.ctime(time.time())).encode())
pty.spawn(shell, read)
-file.write('Script done on %s\n' % time.ctime(time.time()))
+script.write(('Script done on %s\n' % time.ctime(time.time())).encode())
sys.stdout.write('Script done, file is %s\n' % filename)