From ceef80bee69c1bb3e5225c59acf7584b60b71f0f Mon Sep 17 00:00:00 2001 From: Brian Warner Date: Thu, 16 Aug 2007 12:50:19 -0700 Subject: [PATCH] scripts: rearrange Options, make --version behave the same for all commands --- src/allmydata/scripts/cli.py | 11 ++++------- src/allmydata/scripts/common.py | 18 +++++++++++++++++- src/allmydata/scripts/runner.py | 12 ++---------- 3 files changed, 23 insertions(+), 18 deletions(-) diff --git a/src/allmydata/scripts/cli.py b/src/allmydata/scripts/cli.py index ef14a2f55..c954f9a32 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 114022be7..f51e886a4 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 ad2f8fa47..72935fa75 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")