summaryrefslogtreecommitdiff
path: root/source4/scripting
diff options
context:
space:
mode:
authorAmitay Isaacs <amitay@gmail.com>2011-07-20 17:07:35 +1000
committerAndrew Tridgell <tridge@samba.org>2011-07-28 15:20:52 +1000
commit35747fe6f05b0d39c4d768d0e88ed6e23aa7875f (patch)
treeaafafde3a64111eacd297489c71f4a235fba2336 /source4/scripting
parent2625199d80bb1280a939ae51a0e835b07d867218 (diff)
downloadsamba-35747fe6f05b0d39c4d768d0e88ed6e23aa7875f.tar.gz
samba-35747fe6f05b0d39c4d768d0e88ed6e23aa7875f.tar.bz2
samba-35747fe6f05b0d39c4d768d0e88ed6e23aa7875f.zip
samba-tool: Added python version of samba-tool
Signed-off-by: Andrew Tridgell <tridge@samba.org>
Diffstat (limited to 'source4/scripting')
-rwxr-xr-xsource4/scripting/python/samba/samba-tool.py70
1 files changed, 70 insertions, 0 deletions
diff --git a/source4/scripting/python/samba/samba-tool.py b/source4/scripting/python/samba/samba-tool.py
new file mode 100755
index 0000000000..494654a78d
--- /dev/null
+++ b/source4/scripting/python/samba/samba-tool.py
@@ -0,0 +1,70 @@
+#!/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
+from os.path import dirname
+
+samba_pymodule_dir = dirname(dirname(sys.argv[0]))
+sys.path.append(samba_pymodule_dir)
+
+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)