mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			42 lines
		
	
	
	
		
			984 B
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
	
		
			984 B
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
| #! /usr/bin/env python3
 | |
| 
 | |
| # script.py -- Make typescript of terminal session.
 | |
| # Usage:
 | |
| #       -a      Append to typescript.
 | |
| #       -p      Use Python as shell.
 | |
| # Author: Steen Lumholt.
 | |
| 
 | |
| 
 | |
| import os, time, sys, getopt
 | |
| import pty
 | |
| 
 | |
| def read(fd):
 | |
|     data = os.read(fd, 1024)
 | |
|     script.write(data)
 | |
|     return data
 | |
| 
 | |
| shell = 'sh'
 | |
| filename = 'typescript'
 | |
| mode = 'wb'
 | |
| if 'SHELL' in os.environ:
 | |
|     shell = os.environ['SHELL']
 | |
| 
 | |
| 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)
 | |
| script.write(('Script started on %s\n' % time.ctime(time.time())).encode())
 | |
| pty.spawn(shell, read)
 | |
| script.write(('Script done on %s\n' % time.ctime(time.time())).encode())
 | |
| sys.stdout.write('Script done, file is %s\n' % filename)
 | 
