1# bgenall - Generate all bgen-generated modules
2#
3import sys
4import os
5import string
6
7def bgenone(dirname, shortname):
8    os.chdir(dirname)
9    print '%s:'%shortname
10    # Sigh, we don't want to lose CVS history, so two
11    # modules have funny names:
12    if shortname == 'carbonevt':
13        modulename = 'CarbonEvtscan'
14    elif shortname == 'ibcarbon':
15        modulename = 'IBCarbonscan'
16    else:
17        modulename = shortname + 'scan'
18    try:
19        m = __import__(modulename)
20    except:
21        print "Error:", shortname, sys.exc_info()[1]
22        return 0
23    try:
24        m.main()
25    except:
26        print "Error:", shortname, sys.exc_info()[1]
27        return 0
28    return 1
29
30def main():
31    success = []
32    failure = []
33    sys.path.insert(0, os.curdir)
34    if len(sys.argv) > 1:
35        srcdir = sys.argv[1]
36    else:
37        srcdir = os.path.join(os.path.join(sys.prefix, 'Mac'), 'Modules')
38    srcdir = os.path.abspath(srcdir)
39    contents = os.listdir(srcdir)
40    for name in contents:
41        moduledir = os.path.join(srcdir, name)
42        scanmodule = os.path.join(moduledir, name +'scan.py')
43        if os.path.exists(scanmodule):
44            if bgenone(moduledir, name):
45                success.append(name)
46            else:
47                failure.append(name)
48    print 'Done:', string.join(success, ' ')
49    if failure:
50        print 'Failed:', string.join(failure, ' ')
51        return 0
52    return 1
53
54if __name__ == '__main__':
55    rv = main()
56    sys.exit(not rv)
57