]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/blob - src/allmydata/scripts/keygen.py
added offloaded key generation
[tahoe-lafs/tahoe-lafs.git] / src / allmydata / scripts / keygen.py
1
2 import os, sys
3 from twisted.python import usage
4 #from allmydata.scripts.common import BasedirMixin, NoDefaultBasedirMixin
5
6 class CreateKeyGeneratorOptions(usage.Options):
7     optParameters = [
8         ["basedir", "C", None, "which directory to create the client in"],
9         ]
10
11 keygen_tac = """
12 # -*- python -*-
13
14 from allmydata import key_generator
15 from twisted.application import service
16
17 k = key_generator.KeyGeneratorService(verbose=False)
18 #k.key_generator.verbose = False
19 #k.key_generator.DEFAULT_KEY_SIZE = 2048
20 #k.key_generator.pool_size = 16
21 #k.key_generator.pool_refresh_delay = 6
22
23 application = service.Application("allmydata_key_generator")
24 k.setServiceParent(application)
25 """
26
27 def create_key_generator(config, out=sys.stdout, err=sys.stderr):
28     basedir = config['basedir']
29     if not basedir:
30         print >>err, "a basedir was not provided, please use --basedir or -C"
31         return -1
32     if os.path.exists(basedir):
33         if os.listdir(basedir):
34             print >>err, "The base directory \"%s\", which is \"%s\" is not empty." % (basedir, os.path.abspath(basedir))
35             print >>err, "To avoid clobbering anything, I am going to quit now."
36             print >>err, "Please use a different directory, or empty this one."
37             return -1
38         # we're willing to use an empty directory
39     else:
40         os.mkdir(basedir)
41     f = open(os.path.join(basedir, "tahoe-key-generator.tac"), "wb")
42     f.write(keygen_tac)
43     f.close()
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