3 from allmydata.scripts.common import BasedirOptions
4 from allmydata.util.assertutil import precondition
5 from allmydata.util.encodingutil import listdir_unicode, quote_output
7 class CreateKeyGeneratorOptions(BasedirOptions):
10 def getSynopsis(self):
11 return "Usage: %s create-key-generator [options] NODEDIR" % (self.command_name,)
18 pkg_resources.require('allmydata-tahoe')
20 from allmydata import key_generator
21 from twisted.application import service
23 k = key_generator.KeyGeneratorService(default_key_size=2048)
24 #k.key_generator.verbose = False
25 #k.key_generator.pool_size = 16
26 #k.key_generator.pool_refresh_delay = 6
28 application = service.Application("allmydata_key_generator")
29 k.setServiceParent(application)
32 def create_key_generator(config, out=sys.stdout, err=sys.stderr):
33 basedir = config['basedir']
34 # This should always be called with an absolute Unicode basedir.
35 precondition(isinstance(basedir, unicode), basedir)
37 if os.path.exists(basedir):
38 if listdir_unicode(basedir):
39 print >>err, "The base directory %s is not empty." % quote_output(basedir)
40 print >>err, "To avoid clobbering anything, I am going to quit now."
41 print >>err, "Please use a different directory, or empty this one."
43 # we're willing to use an empty directory
46 f = open(os.path.join(basedir, "tahoe-key-generator.tac"), "wb")
52 ["create-key-generator", None, CreateKeyGeneratorOptions, "Create a key generator service."],
56 "create-key-generator": create_key_generator,