diff options
Diffstat (limited to 'Tools/versioncheck/checkversions.py')
-rw-r--r-- | Tools/versioncheck/checkversions.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/Tools/versioncheck/checkversions.py b/Tools/versioncheck/checkversions.py new file mode 100644 index 0000000..5715da1 --- /dev/null +++ b/Tools/versioncheck/checkversions.py @@ -0,0 +1,54 @@ +"""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 = string.atoi(a) + if not arguments: + arguments = [sys.prefix] + for dir in arguments: + walk1tree(dir) + +if __name__ == '__main__': + main() + + |