]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/blob - src/allmydata/scripts/keygen.py
Basedir/node directory option improvements for ticket798 branch. addresses #188,...
[tahoe-lafs/tahoe-lafs.git] / src / allmydata / scripts / keygen.py
1
2 import os, sys
3 from allmydata.scripts.common import BasedirMixin, BaseOptions
4 from allmydata.util.encodingutil import listdir_unicode, quote_output
5
6 class CreateKeyGeneratorOptions(BasedirMixin, BaseOptions):
7     default_nodedir = None
8     allow_multiple = False
9
10     optParameters = [
11         ["basedir", "C", None, "which directory to create the key-generator in"],
12     ]
13
14 keygen_tac = """
15 # -*- python -*-
16
17 from allmydata import key_generator
18 from twisted.application import service
19
20 k = key_generator.KeyGeneratorService(default_key_size=2048)
21 #k.key_generator.verbose = False
22 #k.key_generator.pool_size = 16
23 #k.key_generator.pool_refresh_delay = 6
24
25 application = service.Application("allmydata_key_generator")
26 k.setServiceParent(application)
27 """
28
29 def create_key_generator(config, out=sys.stdout, err=sys.stderr):
30     basedir = config['basedirs'][0]
31     if os.path.exists(basedir):
32         if listdir_unicode(basedir):
33             print >>err, "The base directory %s is not empty." % quote_output(basedir)
34             print >>err, "To avoid clobbering anything, I am going to quit now."
35             print >>err, "Please use a different directory, or empty this one."
36             return -1
37         # we're willing to use an empty directory
38     else:
39         os.mkdir(basedir)
40     f = open(os.path.join(basedir, "tahoe-key-generator.tac"), "wb")
41     f.write(keygen_tac)
42     f.close()
43     return 0
44
45 subCommands = [
46     ["create-key-generator", None, CreateKeyGeneratorOptions, "Create a key generator service."],
47 ]
48
49 dispatch = {
50     "create-key-generator": create_key_generator,
51     }
52