]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/blobdiff - src/allmydata/scripts/keygen.py
CLI: put "[global-opts]" in all command synopses
[tahoe-lafs/tahoe-lafs.git] / src / allmydata / scripts / keygen.py
index f41e4956f5f06405c2aa98b93a7abf11826969be..0982b0d80b858d458a18df9e0328295be75fb305 100644 (file)
@@ -1,22 +1,27 @@
 
 import os, sys
-from twisted.python import usage
-#from allmydata.scripts.common import BasedirMixin, NoDefaultBasedirMixin
+from allmydata.scripts.common import BasedirOptions
+from allmydata.util.assertutil import precondition
+from allmydata.util.encodingutil import listdir_unicode, quote_output
+
+class CreateKeyGeneratorOptions(BasedirOptions):
+    default_nodedir = None
+
+    def getSynopsis(self):
+        return "Usage:  %s [global-opts] create-key-generator [options] NODEDIR" % (self.command_name,)
 
-class CreateKeyGeneratorOptions(usage.Options):
-    optParameters = [
-        ["basedir", "C", None, "which directory to create the client in"],
-        ]
 
 keygen_tac = """
 # -*- python -*-
 
+import pkg_resources
+pkg_resources.require('allmydata-tahoe')
+
 from allmydata import key_generator
 from twisted.application import service
 
-k = key_generator.KeyGeneratorService()
+k = key_generator.KeyGeneratorService(default_key_size=2048)
 #k.key_generator.verbose = False
-#k.key_generator.DEFAULT_KEY_SIZE = 2048
 #k.key_generator.pool_size = 16
 #k.key_generator.pool_refresh_delay = 6
 
@@ -26,12 +31,12 @@ k.setServiceParent(application)
 
 def create_key_generator(config, out=sys.stdout, err=sys.stderr):
     basedir = config['basedir']
-    if not basedir:
-        print >>err, "a basedir was not provided, please use --basedir or -C"
-        return -1
+    # This should always be called with an absolute Unicode basedir.
+    precondition(isinstance(basedir, unicode), basedir)
+
     if os.path.exists(basedir):
-        if os.listdir(basedir):
-            print >>err, "The base directory \"%s\", which is \"%s\" is not empty." % (basedir, os.path.abspath(basedir))
+        if listdir_unicode(basedir):
+            print >>err, "The base directory %s is not empty." % quote_output(basedir)
             print >>err, "To avoid clobbering anything, I am going to quit now."
             print >>err, "Please use a different directory, or empty this one."
             return -1
@@ -41,6 +46,7 @@ def create_key_generator(config, out=sys.stdout, err=sys.stderr):
     f = open(os.path.join(basedir, "tahoe-key-generator.tac"), "wb")
     f.write(keygen_tac)
     f.close()
+    return 0
 
 subCommands = [
     ["create-key-generator", None, CreateKeyGeneratorOptions, "Create a key generator service."],