1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-24 21:34:56 +03:00

samba-tool: Redefined samba-tool as a SuperCommand

Removed MainCommand class as samba-tool is a SuperCommand
Redefined samba-tool as a SuperCommand
Fixed error handling in SuperCommand _run

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
This commit is contained in:
Giampaolo Lauria 2011-07-28 21:44:06 -04:00 committed by Andrew Bartlett
parent 02650acac3
commit f5e173284a
2 changed files with 12 additions and 33 deletions

View File

@ -23,41 +23,15 @@ import sys
sys.path.insert(0, "bin/python")
from samba import netcmd
from samba.netcmd import Command, CommandError
from samba.netcmd import SuperCommand
class MainCommand(Command):
"""Main class for samba tool commands"""
commands = {}
class cmd_sambatool(SuperCommand):
"""samba-tool SuperCommand"""
subcommands = netcmd.commands
def _run(self, myname, command=None, *args):
if command in self.commands:
return self.commands[command]._run(command, *args)
print "Usage: samba-tool <command> [options]"
print "Available commands:"
cmds = self.commands.keys()
cmds.sort()
for cmd in cmds:
print " %-16s - %s" % (cmd, self.commands[cmd].description)
if command in [None]:
raise CommandError("You must specify a command")
if command in ['help', '-h', '--help']:
print "For more help on a specific command, please type: samba-tool <command> (-h|--help)"
return 0
raise CommandError("No such command '%s'" % command)
def usage(self, myname, command=None, *args):
if command is None or not command in self.commands:
print "Usage: samba-tool %s (%s) [options]" % (myname,
" | ".join(self.commands.keys()))
else:
return self.commands[command].usage(*args)
class cmd_sambatool(MainCommand):
"""Samba Tool Commands"""
commands = netcmd.commands
if __name__ == '__main__':

View File

@ -148,7 +148,12 @@ class SuperCommand(Command):
def _run(self, myname, subcommand=None, *args):
if subcommand in self.subcommands:
return self.subcommands[subcommand]._run(subcommand, *args)
print "Usage: samba-tool %s <subcommand> [options]" % myname
if (myname == "samba-tool"):
usage = "samba-tool <subcommand>"
else:
usage = "samba-tool %s <subcommand>" % myname
print "Usage: %s [options]" %usage
print "Available subcommands:"
subcmds = self.subcommands.keys()
subcmds.sort()
@ -157,7 +162,7 @@ class SuperCommand(Command):
if subcommand in [None]:
raise CommandError("You must specify a subcommand")
if subcommand in ['help', '-h', '--help']:
print "For more help on a specific subcommand, please type: samba-tool %s <subcommand> (-h|--help)" % myname
print "For more help on a specific subcommand, please type: %s (-h|--help)" % usage
return 0
raise CommandError("No such subcommand '%s'" % subcommand)