]> git.rkrishnan.org Git - tahoe-lafs/zfec.git/blob - misc/build_helpers/show-tool-versions.py
df586c40e1dd2ddd4d606b1daf5e0c09ad67051f
[tahoe-lafs/zfec.git] / misc / build_helpers / show-tool-versions.py
1 #! /usr/bin/env python
2
3 import 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", " ") + ', maxunicode: ' + str(sys.maxunicode)
17
18 def print_cmd_ver(cmdlist, label=None):
19     try:
20         res = subprocess.Popen(cmdlist, stdin=open(os.devnull),
21                                stdout=subprocess.PIPE).communicate()[0]
22         if label is None:
23             label = cmdlist[0]
24         print
25         print label + ': ' + res.replace("\n", " ")
26     except EnvironmentError, le:
27         sys.stderr.write("Got exception invoking '%s': %s\n" % (cmdlist[0], le,))
28         pass
29
30 def print_as_ver():
31     if os.path.exists('a.out'):
32         print
33         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'."
34         return
35     try:
36         res = subprocess.Popen(['as', '-version'], stdin=open(os.devnull),
37                                stderr=subprocess.PIPE).communicate()[1]
38         print
39         print 'as: ' + res.replace("\n", " ")
40         os.remove('a.out')
41     except EnvironmentError, le:
42         sys.stderr.write("Got exception invoking '%s': %s\n" % ('as', le,))
43         pass
44
45 def print_setuptools_ver():
46     try:
47         import pkg_resources
48         out = str(pkg_resources.require("setuptools"))
49         print
50         print "setuptools:", out.replace("\n", " ")
51     except (ImportError, EnvironmentError), le:
52         sys.stderr.write("Got exception using 'pkg_resources' to get the version of setuptools: %s\n" % (le,))
53         pass
54
55 def print_py_pkg_ver(pkgname):
56     try:
57         import pkg_resources
58         out = str(pkg_resources.require(pkgname))
59         print
60         print pkgname + ': ' + out.replace("\n", " ")
61     except (ImportError, EnvironmentError), le:
62         sys.stderr.write("Got exception using 'pkg_resources' to get the version of %s: %s\n" % (pkgname, le,))
63         pass
64     except pkg_resources.DistributionNotFound, le:
65         sys.stderr.write("pkg_resources reported no %s package installed: %s\n" % (pkgname, le,))
66         pass
67
68 print_platform()
69
70 print_python_ver()
71
72 print_cmd_ver(['buildbot', '--version'])
73 print_cmd_ver(['cl'])
74 print_cmd_ver(['gcc', '--version'])
75 print_cmd_ver(['darcs', '--version'])
76 print_cmd_ver(['darcs', '--exact-version'], label='darcs-exact-version')
77 print_cmd_ver(['7za'])
78
79 print_setuptools_ver()
80
81 print_py_pkg_ver('coverage')
82 print_py_pkg_ver('trialcoverage')
83 print_py_pkg_ver('setuptools_trial')