]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/blob - src/allmydata/scripts/common.py
setup: print out the version number of pycryptopp in "tahoe --version"
[tahoe-lafs/tahoe-lafs.git] / src / allmydata / scripts / common.py
1
2 import os, sys
3 from twisted.python import usage
4
5
6 class BaseOptions:
7     optFlags = [
8         ["quiet", "q", "Operate silently."],
9         ["version", "V", "Display version numbers and exit."],
10         ]
11
12     def opt_version(self):
13         from twisted import copyright
14         import allmydata, zfec, foolscap, pycryptopp
15         print "Twisted version:", copyright.version
16         print "Foolscap version:", foolscap.__version__
17         print "zfec version:", zfec.__version__
18         print "allmydata version:", allmydata.__version__
19         print "pycryptopp version:", pycryptopp.__version__
20         sys.exit(0)
21
22
23 class BasedirMixin:
24     optFlags = [
25         ["multiple", "m", "allow multiple basedirs to be specified at once"],
26         ]
27
28     def postOptions(self):
29         if not self.basedirs:
30             raise usage.UsageError("<basedir> parameter is required")
31         if self['basedir']:
32             del self['basedir']
33         self['basedirs'] = [os.path.abspath(os.path.expanduser(b))
34                             for b in self.basedirs]
35
36     def parseArgs(self, *args):
37         self.basedirs = []
38         if self['basedir']:
39             self.basedirs.append(self['basedir'])
40         if self['multiple']:
41             self.basedirs.extend(args)
42         else:
43             if len(args) == 0 and not self.basedirs:
44                 self.basedirs.append(os.path.expanduser("~/.tahoe"))
45             if len(args) > 0:
46                 self.basedirs.append(args[0])
47             if len(args) > 1:
48                 raise usage.UsageError("I wasn't expecting so many arguments")
49
50 class NoDefaultBasedirMixin(BasedirMixin):
51     def parseArgs(self, *args):
52         # create-client won't default to --basedir=~/.tahoe
53         self.basedirs = []
54         if self['basedir']:
55             self.basedirs.append(self['basedir'])
56         if self['multiple']:
57             self.basedirs.extend(args)
58         else:
59             if len(args) > 0:
60                 self.basedirs.append(args[0])
61             if len(args) > 1:
62                 raise usage.UsageError("I wasn't expecting so many arguments")
63         if not self.basedirs:
64             raise usage.UsageError("--basedir must be provided")
65
66