"""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() |