mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 02:15:10 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			55 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """Checkversions - recursively search a directory (default: sys.prefix) 
 | |
| for _checkversion.py files, and run each of them. This will tell you of
 | |
| new versions available for any packages you have installed."""
 | |
| 
 | |
| import os
 | |
| import getopt
 | |
| import sys
 | |
| import string
 | |
| import pyversioncheck
 | |
| 
 | |
| CHECKNAME="_checkversion.py"
 | |
| 
 | |
| VERBOSE=1
 | |
| 
 | |
| USAGE="""Usage: checkversions [-v verboselevel] [dir ...]
 | |
| Recursively examine a tree (default: sys.prefix) and for each package
 | |
| with a _checkversion.py file compare the installed version against the current
 | |
| version.
 | |
| 
 | |
| Values for verboselevel:
 | |
| 0 - Minimal output, one line per package
 | |
| 1 - Also print descriptions for outdated packages (default)
 | |
| 2 - Print information on each URL checked
 | |
| 3 - Check every URL for packages with multiple locations"""
 | |
| 
 | |
| def check1dir(dummy, dir, files):
 | |
| 	if CHECKNAME in files:
 | |
| 		fullname = os.path.join(dir, CHECKNAME)
 | |
| 		try:
 | |
| 			execfile(fullname)
 | |
| 		except:
 | |
| 			print '** Exception in', fullname
 | |
| 			
 | |
| def walk1tree(tree):
 | |
| 	os.path.walk(tree, check1dir, None)
 | |
| 	
 | |
| def main():
 | |
| 	global VERBOSE
 | |
| 	try:
 | |
| 		options, arguments = getopt.getopt(sys.argv[1:], 'v:')
 | |
| 	except getopt.error:
 | |
| 		print USAGE
 | |
| 		sys.exit(1)
 | |
| 	for o, a in options:
 | |
| 		if o == '-v':
 | |
| 			VERBOSE = string.atoi(a)
 | |
| 	if not arguments:
 | |
| 		arguments = [sys.prefix]
 | |
| 	for dir in arguments:
 | |
| 		walk1tree(dir)
 | |
| 		
 | |
| if __name__ == '__main__':
 | |
| 	main()
 | |
| 		
 | |
| 	
 | 
