mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			52 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
	
		
			1.4 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 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 = int(a)
 | 
						|
    if not arguments:
 | 
						|
        arguments = [sys.prefix]
 | 
						|
    for dir in arguments:
 | 
						|
        walk1tree(dir)
 | 
						|
 | 
						|
if __name__ == '__main__':
 | 
						|
    main()
 |