From: Andreas Schneider Date: Wed, 13 Jan 2021 08:57:19 +0000 (+0100) Subject: lib:cmdline: Add a --option only parser for testparm X-Git-Tag: tevent-0.11.0~758 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a5a2636e20d6e33327d9e06359f5512141961403;p=thirdparty%2Fsamba.git lib:cmdline: Add a --option only parser for testparm Signed-off-by: Andreas Schneider Reviewed-by: Andrew Bartlett --- diff --git a/lib/cmdline/cmdline.c b/lib/cmdline/cmdline.c index 15be2e42ff4..58e8059b9a8 100644 --- a/lib/cmdline/cmdline.c +++ b/lib/cmdline/cmdline.c @@ -459,6 +459,21 @@ static struct poptOption popt_common_debug[] = { POPT_TABLEEND }; +static struct poptOption popt_common_option[] = { + { + .argInfo = POPT_ARG_CALLBACK|POPT_CBFLAG_PRE|POPT_CBFLAG_POST, + .arg = (void *)popt_samba_callback, + }, + { + .longName = "option", + .argInfo = POPT_ARG_STRING, + .val = OPT_OPTION, + .descrip = "Set smb.conf option from command line", + .argDescrip = "name=value", + }, + POPT_TABLEEND +}; + static struct poptOption popt_common_samba[] = { { .argInfo = POPT_ARG_CALLBACK|POPT_CBFLAG_PRE|POPT_CBFLAG_POST, @@ -1218,6 +1233,9 @@ struct poptOption *samba_cmdline_get_popt(enum smb_cmdline_popt_options opt) case SAMBA_CMDLINE_POPT_OPT_DEBUG_ONLY: return popt_common_debug; break; + case SAMBA_CMDLINE_POPT_OPT_OPTION_ONLY: + return popt_common_option; + break; case SAMBA_CMDLINE_POPT_OPT_SAMBA: return popt_common_samba; break; diff --git a/lib/cmdline/cmdline.h b/lib/cmdline/cmdline.h index 8d8f3ebe5a7..8fe746055c8 100644 --- a/lib/cmdline/cmdline.h +++ b/lib/cmdline/cmdline.h @@ -40,6 +40,7 @@ enum samba_cmdline_config_type { enum smb_cmdline_popt_options { SAMBA_CMDLINE_POPT_OPT_DEBUG_ONLY = 1, + SAMBA_CMDLINE_POPT_OPT_OPTION_ONLY, SAMBA_CMDLINE_POPT_OPT_SAMBA, SAMBA_CMDLINE_POPT_OPT_CONNECTION, SAMBA_CMDLINE_POPT_OPT_CREDENTIALS, @@ -153,6 +154,18 @@ poptContext samba_popt_get_context(const char * name, .descrip = "Common debug options:", \ .argDescrip = NULL }, +/** + * @brief A popt structure for --option only. + */ +#define POPT_COMMON_OPTION_ONLY { \ + .longName = NULL, \ + .shortName = '\0', \ + .argInfo = POPT_ARG_INCLUDE_TABLE, \ + .arg = samba_cmdline_get_popt(SAMBA_CMDLINE_POPT_OPT_OPTION_ONLY), \ + .val = 0, \ + .descrip = "Options:", \ + .argDescrip = NULL }, + /** * @brief A popt structure for common samba options. */