mirror of
https://github.com/openvswitch/ovs
synced 2025-08-31 06:15:47 +00:00
command-line: New function ovs_cmdl_env_parse_all().
This function allows an environment variable to be included in command-line parsing. It will receive its first user in an upcoming commit. Signed-off-by: Aliasgar Ginwala <aginwala@ebay.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
This commit is contained in:
committed by
Ben Pfaff
parent
dee6478d4a
commit
6e26ff6337
@@ -19,6 +19,7 @@
|
||||
#include <getopt.h>
|
||||
#include <limits.h>
|
||||
#include <stdlib.h>
|
||||
#include "svec.h"
|
||||
#include "openvswitch/dynamic-string.h"
|
||||
#include "ovs-thread.h"
|
||||
#include "util.h"
|
||||
@@ -77,6 +78,29 @@ find_option_by_value(const struct option *options, int value)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Parses options set using environment variable. The caller specifies the
|
||||
* supported options in environment variable. On success, adds the parsed
|
||||
* env variables in 'argv', the number of options in 'argc', and returns argv.
|
||||
* */
|
||||
char **
|
||||
ovs_cmdl_env_parse_all(int *argcp, char *argv[], const char *env_options)
|
||||
{
|
||||
ovs_assert(*argcp > 0);
|
||||
|
||||
struct svec args = SVEC_EMPTY_INITIALIZER;
|
||||
svec_add(&args, argv[0]);
|
||||
if (env_options) {
|
||||
svec_parse_words(&args, env_options);
|
||||
}
|
||||
for (int i = 1; i < *argcp; i++) {
|
||||
svec_add(&args, argv[i]);
|
||||
}
|
||||
svec_terminate(&args);
|
||||
|
||||
*argcp = args.n;
|
||||
return args.names;
|
||||
}
|
||||
|
||||
/* Parses the command-line options in 'argc' and 'argv'. The caller specifies
|
||||
* the supported options in 'options'. On success, stores the parsed options
|
||||
* in '*pop', the number of options in '*n_pop', and returns NULL. On failure,
|
||||
|
Reference in New Issue
Block a user