summaryrefslogtreecommitdiff
path: root/source4/scripting/bin/samba-tool
diff options
context:
space:
mode:
authorAmitay Isaacs <amitay@gmail.com>2011-07-21 09:48:30 +1000
committerAndrew Tridgell <tridge@samba.org>2011-07-28 15:20:52 +1000
commit02667cbe2627898fb2937f649015373a1d450de3 (patch)
tree12252756f5df0fa42f2d1c98114f359ee555925d /source4/scripting/bin/samba-tool
parent35747fe6f05b0d39c4d768d0e88ed6e23aa7875f (diff)
downloadsamba-02667cbe2627898fb2937f649015373a1d450de3.tar.gz
samba-tool: Replace C version of samba-tool with python version
C version of samba-tool is now called samba-tool-c, which will be removed as soon as all the samba-tool commands are ported to python. Signed-off-by: Andrew Tridgell <tridge@samba.org>
Diffstat (limited to 'source4/scripting/bin/samba-tool')
-rwxr-xr-xsource4/scripting/bin/samba-tool69
1 files changed, 69 insertions, 0 deletions
diff --git a/source4/scripting/bin/samba-tool b/source4/scripting/bin/samba-tool
new file mode 100755
index 00000000000..9735335af5f
--- /dev/null
+++ b/source4/scripting/bin/samba-tool
@@ -0,0 +1,69 @@
+#!/usr/bin/env python
+
+# Unix SMB/CIFS implementation.
+# Copyright (C) Amitay Isaacs <amitay@gmail.com> 211
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+
+import sys
+
+# Find right direction when running from source tree
+sys.path.insert(0, "bin/python")
+
+from samba import netcmd
+from samba.netcmd import Command, CommandError, Option
+
+class MainCommand(Command):
+ """Main class for samba tool commands"""
+
+ commands = {}
+
+ def _run(self, myname, command=None, *args):
+ if command in self.commands:
+ return self.commands[command]._run(command, *args)
+
+ print "Syntax: %s <command> [options]" % (myname)
+ print "Available commands:"
+ for cmd in self.commands:
+ print " %-12s - %s" % (cmd, self.commands[cmd].description)
+ if command in [None, 'help', '-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: %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__':
+ cmd = cmd_sambatool()
+
+ command = None
+ args = ()
+
+ if len(sys.argv) > 1:
+ command = sys.argv[1]
+ if len(sys.argv) > 2:
+ args = sys.argv[2:]
+
+ cmd._run("samba-tool.py", command, *args)