summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2009-12-28 21:07:25 +0100
committerJelmer Vernooij <jelmer@ganieda.vernstok.nl>2009-12-29 16:26:20 +0100
commite2c4d8281d726716a00cfe2e3e0352777fc8b66f (patch)
tree8ca4a0e53f30256a81ef4131db6fa66c80793a6e
parent433f58f5a7490ba470dddc55e37325bb73cdba5c (diff)
downloadsamba-e2c4d8281d726716a00cfe2e3e0352777fc8b66f.tar.gz
samba-e2c4d8281d726716a00cfe2e3e0352777fc8b66f.tar.bz2
samba-e2c4d8281d726716a00cfe2e3e0352777fc8b66f.zip
s4/net: Allow options before arguments for Python commands.
-rw-r--r--source4/scripting/python/samba/netcmd/__init__.py3
-rw-r--r--source4/utils/net/net.c4
2 files changed, 4 insertions, 3 deletions
diff --git a/source4/scripting/python/samba/netcmd/__init__.py b/source4/scripting/python/samba/netcmd/__init__.py
index cb8fa01fe1..1a04210f95 100644
--- a/source4/scripting/python/samba/netcmd/__init__.py
+++ b/source4/scripting/python/samba/netcmd/__init__.py
@@ -75,12 +75,13 @@ class Command(object):
parser, optiongroups = self._create_parser()
opts, args = parser.parse_args(list(argv))
# Filter out options from option groups
+ args = args[1:]
kwargs = dict(opts.__dict__)
for option_group in parser.option_groups:
for option in option_group.option_list:
del kwargs[option.dest]
kwargs.update(optiongroups)
- if len(args) < len(self.takes_args):
+ if len(args) != len(self.takes_args):
self.usage(args)
return -1
try:
diff --git a/source4/utils/net/net.c b/source4/utils/net/net.c
index 7b8f092f93..f761ef4050 100644
--- a/source4/utils/net/net.c
+++ b/source4/utils/net/net.c
@@ -346,10 +346,10 @@ static int binary_net(int argc, const char **argv)
return 1;
}
- py_cmd = PyDict_GetItemString(py_cmds, argv[1]);
+ py_cmd = PyDict_GetItemString(py_cmds, argv_new[1]);
if (py_cmd != NULL) {
rc = py_call_with_string_args(py_cmd, "_run",
- argc-2, argv+2);
+ argc-1, argv+1);
talloc_free(ev);
return rc;
}