source file: /home/buildslave/tahoe/edgy/build/src/allmydata/scripts/keygen.py
file stats: 23 lines, 23 executed: 100.0% covered
coverage versus previous test: 0 lines added, 0 lines removed
    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 key-generator 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(default_key_size=2048)
   18. #k.key_generator.verbose = False
   19. #k.key_generator.pool_size = 16
   20. #k.key_generator.pool_refresh_delay = 6
   21. 
   22. application = service.Application("allmydata_key_generator")
   23. k.setServiceParent(application)
   24. """
   25. 
   26. def create_key_generator(config, out=sys.stdout, err=sys.stderr):
   27.     basedir = config['basedir']
   28.     if not basedir:
   29.         print >>err, "a basedir was not provided, please use --basedir or -C"
   30.         return -1
   31.     if os.path.exists(basedir):
   32.         if os.listdir(basedir):
   33.             print >>err, "The base directory \"%s\", which is \"%s\" is not empty." % (basedir, os.path.abspath(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.