]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/blob - src/allmydata/scripts/keygen.py
Merge pull request #236 from daira/2725.timezone-test.0
[tahoe-lafs/tahoe-lafs.git] / src / allmydata / scripts / keygen.py
1
2 import os, sys
3 from allmydata.scripts.common import NoDefaultBasedirOptions
4 from allmydata.util.assertutil import precondition
5 from allmydata.util.encodingutil import listdir_unicode, quote_output
6
7
8 class CreateKeyGeneratorOptions(NoDefaultBasedirOptions):
9     subcommand_name = "create-key-generator"
10
11
12 keygen_tac = """
13 # -*- python -*-
14
15 import pkg_resources
16 pkg_resources.require('allmydata-tahoe')
17
18 from allmydata import key_generator
19 from twisted.application import service
20
21 k = key_generator.KeyGeneratorService(default_key_size=2048)
22 #k.key_generator.verbose = False
23 #k.key_generator.pool_size = 16
24 #k.key_generator.pool_refresh_delay = 6
25
26 application = service.Application("allmydata_key_generator")
27 k.setServiceParent(application)
28 """
29
30 def create_key_generator(config, out=sys.stdout, err=sys.stderr):
31     basedir = config['basedir']
32     # This should always be called with an absolute Unicode basedir.
33     precondition(isinstance(basedir, unicode), basedir)
34
35     if os.path.exists(basedir):
36         if listdir_unicode(basedir):
37             print >>err, "The base directory %s is not empty." % quote_output(basedir)
38             print >>err, "To avoid clobbering anything, I am going to quit now."
39             print >>err, "Please use a different directory, or empty this one."
40             return -1
41         # we're willing to use an empty directory
42     else:
43         os.mkdir(basedir)
44     f = open(os.path.join(basedir, "tahoe-key-generator.tac"), "wb")
45     f.write(keygen_tac)
46     f.close()
47     return 0
48
49 subCommands = [
50     ["create-key-generator", None, CreateKeyGeneratorOptions, "Create a key generator service."],
51 ]
52
53 dispatch = {
54     "create-key-generator": create_key_generator,
55     }
56