[SCM] Samba Shared Repository - branch master updated
Stefan Metzmacher
metze at samba.org
Mon Oct 8 09:53:01 MDT 2012
The branch, master has been updated
via 8746faf s4:scripting/python: add '-V' as alias for '--version'
via 309434a s4:samba-tool: allow 'samba-tool --version'
via 2fce71c s4:samba-tool: use normal option parsing in SuperCommand
via 8d4943d s4:samba-tool: add optional epilog to _create_parser()
from c12cc3c s3fs-printing: Fix RAW printing for normal users.
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 8746faf846fb4f4552e648f4e4e05510b8bd1ef4
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Oct 8 12:50:52 2012 +0200
s4:scripting/python: add '-V' as alias for '--version'
metze
Autobuild-User(master): Stefan Metzmacher <metze at samba.org>
Autobuild-Date(master): Mon Oct 8 17:52:52 CEST 2012 on sn-devel-104
commit 309434a77396680b5a40985157da44aaddb5ca71
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Oct 8 12:50:33 2012 +0200
s4:samba-tool: allow 'samba-tool --version'
metze
commit 2fce71c89af66c1467f0a18b97e237b307387620
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Oct 8 12:47:47 2012 +0200
s4:samba-tool: use normal option parsing in SuperCommand
We use the epilog to print the subcommands.
metze
commit 8d4943dcf943dc83b9b663d3d025fb1a8dbcba86
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Oct 8 12:45:20 2012 +0200
s4:samba-tool: add optional epilog to _create_parser()
metze
-----------------------------------------------------------------------
Summary of changes:
source4/scripting/python/samba/getopt.py | 2 +-
source4/scripting/python/samba/netcmd/__init__.py | 32 +++++++++++++--------
source4/scripting/python/samba/netcmd/main.py | 6 ++++
3 files changed, 27 insertions(+), 13 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source4/scripting/python/samba/getopt.py b/source4/scripting/python/samba/getopt.py
index 1818ff3..c3c0800 100644
--- a/source4/scripting/python/samba/getopt.py
+++ b/source4/scripting/python/samba/getopt.py
@@ -100,7 +100,7 @@ class VersionOptions(optparse.OptionGroup):
"""Command line option for printing Samba version."""
def __init__(self, parser):
optparse.OptionGroup.__init__(self, parser, "Version Options")
- self.add_option("--version", action="callback",
+ self.add_option("-V", "--version", action="callback",
callback=self._display_version,
help="Display version number")
diff --git a/source4/scripting/python/samba/netcmd/__init__.py b/source4/scripting/python/samba/netcmd/__init__.py
index ec2d222..a3edf50 100644
--- a/source4/scripting/python/samba/netcmd/__init__.py
+++ b/source4/scripting/python/samba/netcmd/__init__.py
@@ -40,6 +40,11 @@ class PlainHelpFormatter(optparse.IndentedHelpFormatter):
result = "\n".join(wrapped_paragraphs) + "\n"
return result
+ def format_epilog(self, epilog):
+ if epilog:
+ return "\n" + epilog + "\n"
+ else:
+ return ""
class Command(object):
"""A samba-tool command."""
@@ -117,12 +122,12 @@ class Command(object):
if force_traceback or samba.get_debug_level() >= 3:
traceback.print_tb(etraceback)
- def _create_parser(self, prog):
+ def _create_parser(self, prog, epilog=None):
parser = optparse.OptionParser(
usage=self.synopsis,
description=self.full_description,
formatter=PlainHelpFormatter(),
- prog=prog)
+ prog=prog,epilog=epilog)
parser.add_options(self.takes_options)
optiongroups = {}
for name, optiongroup in self.takes_optiongroups.iteritems():
@@ -196,22 +201,25 @@ class SuperCommand(Command):
return self.subcommands[subcommand]._run(
"%s %s" % (myname, subcommand), *args)
- self.usage(myname)
- self.outf.write("Available subcommands:\n")
+ epilog = "\nAvailable subcommands:\n"
subcmds = self.subcommands.keys()
subcmds.sort()
max_length = max([len(c) for c in subcmds])
for cmd_name in subcmds:
cmd = self.subcommands[cmd_name]
if not cmd.hidden:
- self.outf.write(" %*s - %s\n" % (
- -max_length, cmd_name, cmd.short_description))
- if subcommand in [None]:
- raise CommandError("You must specify a subcommand")
- if subcommand in ['help', '-h', '--help']:
- self.outf.write("For more help on a specific subcommand, please type: %s <subcommand> (-h|--help)\n" % myname)
- return 0
- raise CommandError("No such subcommand '%s'" % subcommand)
+ epilog += " %*s - %s\n" % (
+ -max_length, cmd_name, cmd.short_description)
+ epilog += "For more help on a specific subcommand, please type: %s <subcommand> (-h|--help)\n" % myname
+
+ parser, optiongroups = self._create_parser(myname, epilog=epilog)
+ args_list = list(args)
+ if subcommand:
+ args_list.insert(0, subcommand)
+ opts, args = parser.parse_args(args_list)
+
+ parser.print_help()
+ return -1
class CommandError(Exception):
diff --git a/source4/scripting/python/samba/netcmd/main.py b/source4/scripting/python/samba/netcmd/main.py
index 5ffeef0..af3abfd 100644
--- a/source4/scripting/python/samba/netcmd/main.py
+++ b/source4/scripting/python/samba/netcmd/main.py
@@ -17,6 +17,8 @@
"""The main samba-tool command implementation."""
+from samba import getopt as options
+
from samba.netcmd import SuperCommand
from samba.netcmd.dbcheck import cmd_dbcheck
from samba.netcmd.delegation import cmd_delegation
@@ -41,6 +43,10 @@ from samba.netcmd.vampire import cmd_vampire
class cmd_sambatool(SuperCommand):
"""Main samba administration tool."""
+ takes_optiongroups = {
+ "versionopts": options.VersionOptions,
+ }
+
subcommands = {}
subcommands["dbcheck"] = cmd_dbcheck()
subcommands["delegation"] = cmd_delegation()
--
Samba Shared Repository
More information about the samba-cvs
mailing list