]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/blob - src/allmydata/scripts/keygen.py
cd8ff364343f0e0afd4db4bfcfec902044a8cfa6
[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 from allmydata.util.encodingutil import listdir_unicode, argv_to_abspath, quote_output
6
7 class CreateKeyGeneratorOptions(usage.Options):
8     optParameters = [
9         ["basedir", "C", None, "which directory to create the key-generator in"],
10         ]
11
12 keygen_tac = """
13 # -*- python -*-
14
15 from allmydata import key_generator
16 from twisted.application import service
17
18 k = key_generator.KeyGeneratorService(default_key_size=2048)
19 #k.key_generator.verbose = False
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     if not config['basedir']:
29         print >>err, "a basedir was not provided, please use --basedir or -C"
30         return -1
31     basedir = argv_to_abspath(config['basedir'])
32     if os.path.exists(basedir):
33         if listdir_unicode(basedir):
34             print >>err, "The base directory %s is not empty." % quote_output(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     return 0
45
46 subCommands = [
47     ["create-key-generator", None, CreateKeyGeneratorOptions, "Create a key generator service."],
48 ]
49
50 dispatch = {
51     "create-key-generator": create_key_generator,
52     }
53