]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/blob - misc/show-tool-versions.py
quickstart.html: link to snapshots page, sorted with most recent first.
[tahoe-lafs/tahoe-lafs.git] / misc / show-tool-versions.py
1 #! /usr/bin/env python
2
3 import locale, os, subprocess, sys
4
5 def print_platform():
6     try:
7         import platform
8         out = platform.platform()
9         print
10         print "platform:", out.replace("\n", " ")
11     except EnvironmentError, le:
12          sys.stderr.write("Got exception using 'platform': %s\n" % (le,))
13          pass
14
15 def print_python_ver():
16     print "python:", sys.version.replace("\n", " "),
17     print ', maxunicode: ' + str(sys.maxunicode),
18     print ', stdout.encoding: ' + str(sys.stdout.encoding),
19     print ', stdin.encoding: ' + str(sys.stdin.encoding),
20     print ', filesystem.encoding: ' + str(sys.getfilesystemencoding()),
21     print ', locale.getpreferredencoding: ' + str(locale.getpreferredencoding()),
22     print ', os.path.supports_unicode_filenames: ' + str(os.path.supports_unicode_filenames),
23     print ', locale.defaultlocale: ' + str(locale.getdefaultlocale()),
24     print ', locale.locale: ' + str(locale.getlocale())
25
26 def print_cmd_ver(cmdlist, label=None):
27     try:
28         res = subprocess.Popen(cmdlist, stdin=open(os.devnull),
29                                stdout=subprocess.PIPE).communicate()[0]
30         if label is None:
31             label = cmdlist[0]
32         print
33         print label + ': ' + res.replace("\n", " ")
34     except EnvironmentError, le:
35         sys.stderr.write("Got exception invoking '%s': %s\n" % (cmdlist[0], le,))
36         pass
37
38 def print_as_ver():
39     if os.path.exists('a.out'):
40         print
41         print "WARNING: a file named a.out exists, and getting the version of the 'as' assembler writes to that filename, so I'm not attempting to get the version of 'as'."
42         return
43     try:
44         res = subprocess.Popen(['as', '-version'], stdin=open(os.devnull),
45                                stderr=subprocess.PIPE).communicate()[1]
46         print
47         print 'as: ' + res.replace("\n", " ")
48         os.remove('a.out')
49     except EnvironmentError, le:
50         sys.stderr.write("Got exception invoking '%s': %s\n" % ('as', le,))
51         pass
52
53 def print_setuptools_ver():
54     try:
55         import pkg_resources
56         out = str(pkg_resources.require("setuptools"))
57         print
58         print "setuptools:", out.replace("\n", " ")
59     except (ImportError, EnvironmentError), le:
60         sys.stderr.write("Got exception using 'pkg_resources' to get the version of setuptools: %s\n" % (le,))
61         pass
62
63 def print_py_pkg_ver(pkgname):
64     try:
65         import pkg_resources
66         out = str(pkg_resources.require(pkgname))
67         print
68         print pkgname + ': ' + out.replace("\n", " ")
69     except (ImportError, EnvironmentError), le:
70         sys.stderr.write("Got exception using 'pkg_resources' to get the version of %s: %s\n" % (pkgname, le,))
71         pass
72     except pkg_resources.DistributionNotFound, le:
73         sys.stderr.write("pkg_resources reported no %s package installed: %s\n" % (pkgname, le,))
74         pass
75
76 print_platform()
77
78 print_python_ver()
79
80 print_cmd_ver(['buildbot', '--version'])
81 print_cmd_ver(['cl'])
82 print_cmd_ver(['gcc', '--version'])
83 print_cmd_ver(['g++', '--version'])
84 print_cmd_ver(['cryptest', 'V'])
85 print_cmd_ver(['darcs', '--version'])
86 print_cmd_ver(['darcs', '--exact-version'], label='darcs-exact-version')
87 print_cmd_ver(['7za'])
88
89 print_as_ver()
90
91 print_setuptools_ver()
92
93 print_py_pkg_ver('coverage')
94 print_py_pkg_ver('trialcoverage')
95 print_py_pkg_ver('setuptools_trial')