summaryrefslogtreecommitdiffstats
path: root/Tools/versioncheck/checkversions.py
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1997-12-23 18:43:55 (GMT)
committerGuido van Rossum <guido@python.org>1997-12-23 18:43:55 (GMT)
commit5291037c704a0e092313b70fa09364296e3149fa (patch)
tree4eaf8bc2858903c36ab3a0457412358466ef6b2e /Tools/versioncheck/checkversions.py
parent7f96291ee28ead21ab79b2f21a2dc14ca384c316 (diff)
downloadcpython-5291037c704a0e092313b70fa09364296e3149fa.zip
cpython-5291037c704a0e092313b70fa09364296e3149fa.tar.gz
cpython-5291037c704a0e092313b70fa09364296e3149fa.tar.bz2
Adding Jack Jansen's version checking utility.
Diffstat (limited to 'Tools/versioncheck/checkversions.py')
-rw-r--r--Tools/versioncheck/checkversions.py54
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()
+
+