From: Brian Warner Date: Thu, 16 Aug 2007 19:50:19 +0000 (-0700) Subject: scripts: rearrange Options, make --version behave the same for all commands X-Git-Url: https://git.rkrishnan.org/architecture.txt?a=commitdiff_plain;h=ceef80bee69c1bb3e5225c59acf7584b60b71f0f;p=tahoe-lafs%2Ftahoe-lafs.git scripts: rearrange Options, make --version behave the same for all commands --- diff --git a/src/allmydata/scripts/cli.py b/src/allmydata/scripts/cli.py index ef14a2f5..c954f9a3 100644 --- a/src/allmydata/scripts/cli.py +++ b/src/allmydata/scripts/cli.py @@ -1,14 +1,9 @@ import os.path, sys from twisted.python import usage +from allmydata.scripts.common import BaseOptions -class OptionsMixin(usage.Options): - optFlags = [ - ["quiet", "q", "Operate silently."], - ["version", "V", "Display version numbers and exit."], - ] - -class VDriveOptions(OptionsMixin): +class VDriveOptions(BaseOptions, usage.Options): optParameters = [ ["vdrive", "d", "global", "which virtual drive to use: 'global' or 'private'"], @@ -21,6 +16,8 @@ class ListOptions(VDriveOptions): def parseArgs(self, vdrive_filename=""): self['vdrive_filename'] = vdrive_filename + longdesc = """List the contents of some portion of the virtual drive.""" + class GetOptions(VDriveOptions): def parseArgs(self, vdrive_filename, local_filename="-"): self['vdrive_filename'] = vdrive_filename diff --git a/src/allmydata/scripts/common.py b/src/allmydata/scripts/common.py index 114022be..f51e886a 100644 --- a/src/allmydata/scripts/common.py +++ b/src/allmydata/scripts/common.py @@ -1,8 +1,24 @@ -import os +import os, sys from twisted.python import usage +class BaseOptions: + optFlags = [ + ["quiet", "q", "Operate silently."], + ["version", "V", "Display version numbers and exit."], + ] + + def opt_version(self): + from twisted import copyright + import allmydata, zfec, foolscap + print "Twisted version:", copyright.version + print "Foolscap version:", foolscap.__version__ + print "zfec version:", zfec.__version__ + print "allmydata version:", allmydata.__version__ + sys.exit(0) + + class BasedirMixin: optFlags = [ ["multiple", "m", "allow multiple basedirs to be specified at once"], diff --git a/src/allmydata/scripts/runner.py b/src/allmydata/scripts/runner.py index ad2f8fa4..72935fa7 100644 --- a/src/allmydata/scripts/runner.py +++ b/src/allmydata/scripts/runner.py @@ -3,9 +3,10 @@ import sys from cStringIO import StringIO from twisted.python import usage +from allmydata.scripts.common import BaseOptions import debug, create_node, startstop_node, cli -class Options(cli.OptionsMixin): +class Options(BaseOptions, usage.Options): synopsis = "Usage: allmydata [command options]" subCommands = [] @@ -14,15 +15,6 @@ class Options(cli.OptionsMixin): subCommands += debug.subCommands subCommands += cli.subCommands - def opt_version(self): - from twisted import copyright - import allmydata, zfec, foolscap - print "Twisted version:", copyright.version - print "Foolscap version:", foolscap.__version__ - print "zfec version:", zfec.__version__ - print "allmydata version:", allmydata.__version__ - sys.exit(0) - def postOptions(self): if not hasattr(self, 'subOptions'): raise usage.UsageError("must specify a command")