import os.path, re, fnmatch
from twisted.python import usage
-from allmydata.scripts.common import BaseOptions, get_aliases, get_default_nodedir, DEFAULT_ALIAS
+from allmydata.scripts.common import get_aliases, get_default_nodedir, \
+ DEFAULT_ALIAS, BaseOptions
from allmydata.util.encodingutil import argv_to_unicode, argv_to_abspath, quote_output
NODEURL_RE=re.compile("http(s?)://([^:]*)(:([1-9][0-9]*))?")
class VDriveOptions(BaseOptions):
optParameters = [
- ["node-directory", "d", None,
- "Specify which Tahoe node directory should be used. The directory "
- "should either contain a full Tahoe node, or a file named node.url "
- "that points to some other Tahoe node. It should also contain a file "
- "named '" + os.path.join('private', 'aliases') + "' which contains the "
- "mapping from alias name to root dirnode URI." + (
- _default_nodedir and (" [default: " + quote_output(_default_nodedir) + "]") or "")],
["node-url", "u", None,
- "Specify the URL of the Tahoe gateway node, such as 'http://127.0.0.1:3456'. "
+ "Specify the URL of the Tahoe gateway node, such as "
+ "'http://127.0.0.1:3456'. "
"This overrides the URL found in the --node-directory ."],
["dir-cap", None, None,
"Specify which dirnode URI should be used as the 'tahoe' alias."]
]
def postOptions(self):
- if self['node-directory']:
- self['node-directory'] = argv_to_abspath(self['node-directory'])
+ self["quiet"] = self.parent["quiet"]
+ if self.parent['node-directory']:
+ self['node-directory'] = argv_to_abspath(self.parent['node-directory'])
else:
self['node-directory'] = _default_nodedir
class MakeDirectoryOptions(VDriveOptions):
optParameters = [
- ("format", None, None, "Create directory with the given format: SDMF and MDMF for mutable. (case-insensitive)"),
+ ("format", None, None, "Create a directory with the given format: SDMF or MDMF (case-insensitive)"),
]
def parseArgs(self, where=""):
self.where = argv_to_unicode(where)
if self['format']:
- if self['format'].upper() not in ("SDMF", "MDMF", "CHK"):
+ if self['format'].upper() not in ("SDMF", "MDMF"):
raise usage.UsageError("%s is an invalid format" % self['format'])
def getSynopsis(self):
def parseArgs(self, where=""):
self.where = argv_to_unicode(where)
+ def getSynopsis(self):
+ return "Usage: %s ls [options] [PATH]" % (self.command_name,)
+
longdesc = """
List the contents of some portion of the grid.
+ If PATH is omitted, "tahoe:" is assumed.
+
When the -l or --long option is used, each line is shown in the
following format:
class PutOptions(VDriveOptions):
optFlags = [
- ("mutable", "m", "Create a mutable file instead of an immutable one. (DEPRECATED, use --format=SDMF)"),
+ ("mutable", "m", "Create a mutable file instead of an immutable one (like --format=SDMF)"),
]
optParameters = [
- ("format", None, None, "Create file with the given format: SDMF and MDMF for mutable, CHK (default) for immutable. (case-insensitive)"),
+ ("format", None, None, "Create a file with the given format: SDMF and MDMF for mutable, CHK (default) for immutable. (case-insensitive)"),
]
def parseArgs(self, arg1=None, arg2=None):
If REMOTE_FILE is missing, upload the file but do not link it into a
directory; also print the new filecap to stdout. If LOCAL_FILE is missing
or '-', data will be copied from stdin. REMOTE_FILE is assumed to start
- with tahoe: unless otherwise specified."""
+ with tahoe: unless otherwise specified.
+
+ If the destination file already exists and is mutable, it will be modified
+ in-place, whether or not --mutable is specified. (--mutable only affects
+ creation of new files.)"""
def getUsage(self, width=None):
t = VDriveOptions.getUsage(self, width)