From 02199db615047ea102cc6353f525423be57d3bc2 Mon Sep 17 00:00:00 2001 From: david-sarah Date: Sun, 1 Aug 2010 18:05:52 -0700 Subject: [PATCH] Additional Unicode basedir changes for ticket798 branch. --- src/allmydata/scripts/cli.py | 2 +- src/allmydata/scripts/common.py | 26 ++++++++++---------------- src/allmydata/scripts/create_node.py | 2 ++ src/allmydata/scripts/keygen.py | 5 +++-- 4 files changed, 16 insertions(+), 19 deletions(-) diff --git a/src/allmydata/scripts/cli.py b/src/allmydata/scripts/cli.py index 4150b877..8dff5de2 100644 --- a/src/allmydata/scripts/cli.py +++ b/src/allmydata/scripts/cli.py @@ -1,7 +1,7 @@ import os.path, re, sys, fnmatch from twisted.python import usage from allmydata.scripts.common import BaseOptions, get_aliases -from allmydata.util.encodingutil import argv_to_unicode, argv_to_abspath, quote_output +from allmydata.util.encodingutil import argv_to_unicode, argv_to_abspath NODEURL_RE=re.compile("http(s?)://([^:]*)(:([1-9][0-9]*))?") diff --git a/src/allmydata/scripts/common.py b/src/allmydata/scripts/common.py index a76d0a34..f4d81108 100644 --- a/src/allmydata/scripts/common.py +++ b/src/allmydata/scripts/common.py @@ -39,30 +39,27 @@ class BasedirMixin: raise usage.UsageError(" parameter is required") if self['basedir']: del self['basedir'] - self['basedirs'] = [os.path.abspath(os.path.expanduser(b)) for b in self.basedirs] + self['basedirs'] = self.basedirs def parseArgs(self, *args): self.basedirs = [] if self['basedir']: - precondition(isinstance(self['basedir'], (str, unicode)), self['basedir']) - self.basedirs.append(self['basedir']) + precondition(isinstance(self['basedir'], str), self['basedir']) + self.basedirs.append(argv_to_abspath(self['basedir'])) if self['multiple']: - precondition(not [x for x in args if not isinstance(x, (str, unicode))], args) - self.basedirs.extend(args) + self.basedirs.extend(map(argv_to_abspath, args)) else: if len(args) == 0 and not self.basedirs: if sys.platform == 'win32': from allmydata.windows import registry rbdp = registry.get_base_dir_path() if rbdp: - precondition(isinstance(registry.get_base_dir_path(), (str, unicode)), registry.get_base_dir_path()) + precondition(isinstance(registry.get_base_dir_path(), unicode), registry.get_base_dir_path()) self.basedirs.append(rbdp) else: - precondition(isinstance(os.path.expanduser("~/.tahoe"), (str, unicode)), os.path.expanduser("~/.tahoe")) - self.basedirs.append(os.path.expanduser("~/.tahoe")) + self.basedirs.append(abspath_expanduser_unicode(u"~/.tahoe")) if len(args) > 0: - precondition(isinstance(args[0], (str, unicode)), args[0]) - self.basedirs.append(args[0]) + self.basedirs.append(argv_to_abspath(args[0])) if len(args) > 1: raise usage.UsageError("I wasn't expecting so many arguments") @@ -71,15 +68,12 @@ class NoDefaultBasedirMixin(BasedirMixin): # create-client won't default to --basedir=~/.tahoe self.basedirs = [] if self['basedir']: - precondition(isinstance(self['basedir'], (str, unicode)), self['basedir']) - self.basedirs.append(self['basedir']) + self.basedirs.append(argv_to_abspath(self['basedir'])) if self['multiple']: - precondition(not [x for x in args if not isinstance(x, (str, unicode))], args) - self.basedirs.extend(args) + self.basedirs.extend(map(argv_to_abspath, args)) else: if len(args) > 0: - precondition(isinstance(args[0], (str, unicode)), args[0]) - self.basedirs.append(args[0]) + self.basedirs.append(argv_to_abspath(args[0])) if len(args) > 1: raise usage.UsageError("I wasn't expecting so many arguments") if not self.basedirs: diff --git a/src/allmydata/scripts/create_node.py b/src/allmydata/scripts/create_node.py index 65228bf8..d98b421d 100644 --- a/src/allmydata/scripts/create_node.py +++ b/src/allmydata/scripts/create_node.py @@ -2,6 +2,8 @@ import os, sys from twisted.python import usage from allmydata.scripts.common import BasedirMixin, NoDefaultBasedirMixin +from allmydata.util.assertutil import precondition +from allmydata.util.encodingutil import listdir_unicode, argv_to_unicode, quote_output import allmydata class CreateClientOptions(BasedirMixin, usage.Options): diff --git a/src/allmydata/scripts/keygen.py b/src/allmydata/scripts/keygen.py index 1b0cbad8..cd8ff364 100644 --- a/src/allmydata/scripts/keygen.py +++ b/src/allmydata/scripts/keygen.py @@ -2,6 +2,7 @@ import os, sys from twisted.python import usage #from allmydata.scripts.common import BasedirMixin, NoDefaultBasedirMixin +from allmydata.util.encodingutil import listdir_unicode, argv_to_abspath, quote_output class CreateKeyGeneratorOptions(usage.Options): optParameters = [ @@ -24,10 +25,10 @@ k.setServiceParent(application) """ def create_key_generator(config, out=sys.stdout, err=sys.stderr): - basedir = config['basedir'] - if not basedir: + if not config['basedir']: print >>err, "a basedir was not provided, please use --basedir or -C" return -1 + basedir = argv_to_abspath(config['basedir']) if os.path.exists(basedir): if listdir_unicode(basedir): print >>err, "The base directory %s is not empty." % quote_output(basedir) -- 2.45.2