112 lines
2.8 KiB
C
112 lines
2.8 KiB
C
/*-
|
|
* Public Domain 2014-2016 MongoDB, Inc.
|
|
* Public Domain 2008-2014 WiredTiger, Inc.
|
|
*
|
|
* This is free and unencumbered software released into the public domain.
|
|
*
|
|
* Anyone is free to copy, modify, publish, use, compile, sell, or
|
|
* distribute this software, either in source code form or as a compiled
|
|
* binary, for any purpose, commercial or non-commercial, and by any
|
|
* means.
|
|
*
|
|
* In jurisdictions that recognize copyright laws, the author or authors
|
|
* of this software dedicate any and all copyright interest in the
|
|
* software to the public domain. We make this dedication for the benefit
|
|
* of the public at large and to the detriment of our heirs and
|
|
* successors. We intend this dedication to be an overt act of
|
|
* relinquishment in perpetuity of all present and future rights to this
|
|
* software under copyright law.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
* IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
|
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
* OTHER DEALINGS IN THE SOFTWARE.
|
|
*/
|
|
|
|
#include <string.h>
|
|
#include <stdio.h>
|
|
|
|
#include "config_opt.h"
|
|
|
|
static const CONFIG_OPT config_opts[] = {
|
|
#define OPT_DEFINE_DOXYGEN
|
|
#include "wtperf_opt.i"
|
|
#undef OPT_DEFINE_DOXYGEN
|
|
};
|
|
|
|
/*
|
|
* pretty_print --
|
|
* Print out lines of text for a 80 character window.
|
|
*/
|
|
static void
|
|
pretty_print(const char *p, const char *indent)
|
|
{
|
|
const char *t;
|
|
|
|
for (;; p = t + 1) {
|
|
if (strlen(p) <= 70)
|
|
break;
|
|
for (t = p + 70; t > p && *t != ' '; --t)
|
|
;
|
|
if (t == p) /* No spaces? */
|
|
break;
|
|
printf("%s%.*s\n",
|
|
indent == NULL ? "" : indent, (int)(t - p), p);
|
|
}
|
|
if (*p != '\0')
|
|
printf("%s%s\n", indent == NULL ? "" : indent, p);
|
|
}
|
|
|
|
/*
|
|
* config_doxygen --
|
|
* Output the configuration information for doxgen.
|
|
*/
|
|
static void
|
|
config_doxygen(void)
|
|
{
|
|
size_t i, nopt;
|
|
const char *defaultval, *typestr;
|
|
|
|
nopt = sizeof(config_opts)/sizeof(config_opts[0]);
|
|
for (i = 0; i < nopt; i++) {
|
|
defaultval = config_opts[i].defaultval;
|
|
typestr = "string";
|
|
switch (config_opts[i].type) {
|
|
case BOOL_TYPE:
|
|
typestr = "boolean";
|
|
if (strcmp(defaultval, "0") == 0)
|
|
defaultval = "false";
|
|
else
|
|
defaultval = "true";
|
|
break;
|
|
case CONFIG_STRING_TYPE:
|
|
case STRING_TYPE:
|
|
break;
|
|
case INT_TYPE:
|
|
typestr = "int";
|
|
break;
|
|
case UINT32_TYPE:
|
|
typestr = "unsigned int";
|
|
break;
|
|
}
|
|
printf("@par %s (%s, default=%s)\n",
|
|
config_opts[i].name, typestr, defaultval);
|
|
pretty_print(config_opts[i].description, NULL);
|
|
}
|
|
}
|
|
|
|
/*
|
|
* config_doxygen --
|
|
* A standalone program to output the configuration options in a doxygen
|
|
* format.
|
|
*/
|
|
int
|
|
main()
|
|
{
|
|
config_doxygen();
|
|
return (0);
|
|
}
|