-#!/usr/bin/env python
-
# Samba-specific bits for optparse
# Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2007
#
self._configfile = arg
def _set_debuglevel(self, option, opt_str, arg, parser):
+ if arg < 0:
+ raise optparse.OptionValueError("invalid %s option value: %s" %
+ (opt_str, arg))
self._lp.set('debug level', str(arg))
def _set_realm(self, option, opt_str, arg, parser):
def _set_option(self, option, opt_str, arg, parser):
if arg.find('=') == -1:
- print("--option takes a 'a=b' argument")
- sys.exit(1)
+ raise optparse.OptionValueError(
+ "--option option takes a 'a=b' argument")
a = arg.split('=')
- self._lp.set(a[0], a[1])
+ try:
+ self._lp.set(a[0], a[1])
+ except Exception, e:
+ raise optparse.OptionValueError(
+ "invalid --option option value %r: %s" % (arg, e))
def get_loadparm(self):
"""Return loadparm object with data specified on the command line."""
"""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")
sys.exit(0)
-def parse_kerberos_arg(arg):
+def parse_kerberos_arg(arg, opt_str):
if arg.lower() in ["yes", 'true', '1']:
return MUST_USE_KERBEROS
elif arg.lower() in ["no", 'false', '0']:
elif arg.lower() in ["auto"]:
return AUTO_USE_KERBEROS
else:
- raise optparse.BadOptionError("invalid kerberos option: %s" % arg)
+ raise optparse.OptionValueError("invalid %s option value: %s" %
+ (opt_str, arg))
class CredentialsOptions(optparse.OptionGroup):
self.ipaddress = arg
def _set_kerberos(self, option, opt_str, arg, parser):
- self.creds.set_kerberos_state(parse_kerberos_arg(arg))
+ self.creds.set_kerberos_state(parse_kerberos_arg(arg, opt_str))
def _set_simple_bind_dn(self, option, opt_str, arg, parser):
self.creds.set_bind_dn(arg)
self.no_pass2 = False
def _set_kerberos2(self, option, opt_str, arg, parser):
- self.creds2.set_kerberos_state(parse_kerberos_arg(arg))
+ self.creds2.set_kerberos_state(parse_kerberos_arg(arg, opt_str))
def _set_simple_bind_dn2(self, option, opt_str, arg, parser):
self.creds2.set_bind_dn(arg)