rsstats 0.0.1
Redis Enterprise Statistic collector
rsstats-opts.c
Go to the documentation of this file.
1/* -*- buffer-read-only: t -*- vi: set ro:
2 *
3 * DO NOT EDIT THIS FILE (rsstats-opts.c)
4 *
5 * It has been AutoGen-ed
6 * From the definitions rsstats-opts.def
7 * and the template file options
8 *
9 * Generated from AutoOpts 42:1:17 templates.
10 *
11 * AutoOpts is a copyrighted work. This source file is not encumbered
12 * by AutoOpts licensing, but is provided under the licensing terms chosen
13 * by the rsstats author or copyright holder. AutoOpts is
14 * licensed under the terms of the LGPL. The redistributable library
15 * (``libopts'') is licensed under the terms of either the LGPL or, at the
16 * users discretion, the BSD license. See the AutoOpts and/or libopts sources
17 * for details.
18 *
19 * The rsstats program is copyrighted and licensed
20 * under the following terms:
21 *
22 * Copyright (C) 2024 Francois Cerbelle, all rights reserved.
23 * This is free software. It is licensed for use, modification and
24 * redistribution under the terms of the GNU General Public License,
25 * version 3 or later <http://gnu.org/licenses/gpl.html>
26 *
27 * rsstats is free software: you can redistribute it and/or modify it
28 * under the terms of the GNU General Public License as published by the
29 * Free Software Foundation, either version 3 of the License, or
30 * (at your option) any later version.
31 *
32 * rsstats is distributed in the hope that it will be useful, but
33 * WITHOUT ANY WARRANTY; without even the implied warranty of
34 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
35 * See the GNU General Public License for more details.
36 *
37 * You should have received a copy of the GNU General Public License along
38 * with this program. If not, see <http://www.gnu.org/licenses/>.
39 */
40
41#ifndef __doxygen__
42#define OPTION_CODE_COMPILE 1
43#include "rsstats-opts.h"
44#include <sys/types.h>
45#include <sys/stat.h>
46
47#include <errno.h>
48#include <fcntl.h>
49#include <limits.h>
50#include <stdio.h>
51#include <stdlib.h>
52#include <string.h>
53#include <unistd.h>
54
55#ifdef __cplusplus
56extern "C" {
57#endif
58extern FILE * option_usage_fp;
59#define zCopyright (rsstats_opt_strs+0)
60#define zLicenseDescrip (rsstats_opt_strs+258)
61
62
63#ifndef NULL
64# define NULL 0
65#endif
66
70static char const rsstats_opt_strs[3375] =
71/* 0 */ "rsstats 0.0.1\n"
72 "Copyright (C) 2024 Francois Cerbelle, all rights reserved.\n"
73 "This is free software. It is licensed for use, modification and\n"
74 "redistribution under the terms of the GNU General Public License,\n"
75 "version 3 or later <http://gnu.org/licenses/gpl.html>\n\0"
76/* 258 */ "rsstats is free software: you can redistribute it and/or modify it under\n"
77 "the terms of the GNU General Public License as published by the Free\n"
78 "Software Foundation, either version 3 of the License, or (at your option)\n"
79 "any later version.\n\n"
80 "rsstats is distributed in the hope that it will be useful, but WITHOUT ANY\n"
81 "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\n"
82 "FOR A PARTICULAR PURPOSE. See the GNU General Public License for more\n"
83 "details.\n\n"
84 "You should have received a copy of the GNU General Public License along\n"
85 "with this program. If not, see <http://www.gnu.org/licenses/>.\n\0"
86/* 861 */ "input CSV file (default: clusterdef.csv)\0"
87/* 902 */ "INPUT\0"
88/* 908 */ "input\0"
89/* 914 */ "clusterdef.csv\0"
90/* 929 */ "output CVS filename for nodes information (default: rsstats.csv)\0"
91/* 994 */ "OUTPUT\0"
92/* 1001 */ "output\0"
93/* 1008 */ "rsstats.csv\0"
94/* 1020 */ "comma separated list of clusternames to query (default: all)\0"
95/* 1081 */ "CLUSTERS\0"
96/* 1090 */ "clusters\0"
97/* 1099 */ "all\0"
98/* 1103 */ "Comma separated list of reports to generate (default: all)\0"
99/* 1162 */ "REPORTS\0"
100/* 1170 */ "reports\0"
101/* 1178 */ "display extended usage information and exit\0"
102/* 1222 */ "help\0"
103/* 1227 */ "extended usage information passed thru pager\0"
104/* 1272 */ "more-help\0"
105/* 1282 */ "output version information and exit\0"
106/* 1318 */ "version\0"
107/* 1326 */ "save the option state to a config file\0"
108/* 1365 */ "save-opts\0"
109/* 1375 */ "load options from a config file\0"
110/* 1407 */ "LOAD_OPTS\0"
111/* 1417 */ "no-load-opts\0"
112/* 1430 */ "no\0"
113/* 1433 */ "RSSTATS\0"
114/* 1441 */ "rsstats - Redis Enterprise Software cluster statistic extraction\n"
115 "Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0"
116/* 1564 */ "$HOME\0"
117/* 1570 */ ".rsstatsrc\0"
118/* 1581 */ "francois@cerbelle.net\0"
119/* 1603 */ "rsstats execute all the reports on each of the defined clusters. The\n"
120 "cluster definition list is read from the clusterdef.csv file, which can be\n"
121 "specified with the --input (-i) option, and the reports are written to the\n"
122 "rsstats.csv file, which can be specified with the --output (-o) option.\n"
123 "additional information given whenever the usage routine is invoked or with\n"
124 "the --help (-h) option.\n\0"
125/* 1995 */ "rsstats executes all reports on the clusters specified in the cluster\n"
126 "definition list and writes the reports to the output file. The cluster\n"
127 "list can be filtered by a comma separated list of cluster names with the\n"
128 "--cluster (-c) option and the reports to be executed can be specified as a\n"
129 "comma separated list with the --reports (-r) option.\n\n"
130 "clusterdef.csv mandatory columns :\n"
131 "clustername_or_ip,adminname,adminpass,allow_selfsigned_certs,cacert_file\n\n"
132 "The CSV input format should conform to the RFC4180: - Records (lines) are\n"
133 "separated with CR+LF (Windows) with LF-only (Unix) tolerance - Fields are\n"
134 "separated by a comma - Fields can optionnaly be double-quoted, with a\n"
135 "starting (very first char) and ending (very last char) double-quote -\n"
136 "Spaces chars are part of the field values - If a field contains a either a\n"
137 "comma, a CRLF or a doublequote it needs to be quoted - a double-quote\n"
138 "inside a double-quoted value needs to be doubled (a \"sample\" value => \"a\n"
139 "\"\"sample\"\" value\") - A line can not end with a comma as the very last\n"
140 "character. - Empty lines are not supported.\n\n"
141 "Example:\n\n"
142 "192.168.0.1,admin@demo.com,\n"
143 "192.168.0.2,admin@demo.com,\"\",false,\"/etc/ssl/cert.pem\"\n"
144 "127.0.0.1,admin@demo.com,password 192.168.0.3,admin@demo.com,password\n"
145 "192.168.0.4,admin@demo.com,\"passw,ord\"\n"
146 "192.168.1.50,admin@demo.com,password,true,\"\"\n"
147 "127.0.0.1,admin@demo.com,password,true,\"\"\n\0"
148/* 3361 */ "rsstats 0.0.1";
149
154#define INPUT_DESC (rsstats_opt_strs+861)
156#define INPUT_NAME (rsstats_opt_strs+902)
158#define INPUT_name (rsstats_opt_strs+908)
160#define INPUT_DFT_ARG (rsstats_opt_strs+914)
162#define INPUT_FLAGS (OPTST_DISABLED \
163 | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
164
169#define OUTPUT_DESC (rsstats_opt_strs+929)
171#define OUTPUT_NAME (rsstats_opt_strs+994)
173#define OUTPUT_name (rsstats_opt_strs+1001)
175#define OUTPUT_DFT_ARG (rsstats_opt_strs+1008)
177#define OUTPUT_FLAGS (OPTST_DISABLED \
178 | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
179
184#define CLUSTERS_DESC (rsstats_opt_strs+1020)
186#define CLUSTERS_NAME (rsstats_opt_strs+1081)
188#define CLUSTERS_name (rsstats_opt_strs+1090)
190#define CLUSTERS_DFT_ARG (rsstats_opt_strs+1099)
192#define CLUSTERS_FLAGS (OPTST_DISABLED \
193 | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
194
199#define REPORTS_DESC (rsstats_opt_strs+1103)
201#define REPORTS_NAME (rsstats_opt_strs+1162)
203#define REPORTS_name (rsstats_opt_strs+1170)
205#define REPORTS_DFT_ARG (NULL)
206#define ReportsCookieBits VOIDP(REPORTS_BDBS|REPORTS_CLUSTER)
208#define REPORTS_FLAGS (OPTST_DISABLED \
209 | OPTST_SET_ARGTYPE(OPARG_TYPE_MEMBERSHIP))
210
211/*
212 * Help/More_Help/Version option descriptions:
213 */
214#define HELP_DESC (rsstats_opt_strs+1178)
215#define HELP_name (rsstats_opt_strs+1222)
216#ifdef HAVE_WORKING_FORK
217#define MORE_HELP_DESC (rsstats_opt_strs+1227)
218#define MORE_HELP_name (rsstats_opt_strs+1272)
219#define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
220#else
221#define MORE_HELP_DESC HELP_DESC
222#define MORE_HELP_name HELP_name
223#define MORE_HELP_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
224#endif
225#ifdef NO_OPTIONAL_OPT_ARGS
226# define VER_FLAGS (OPTST_IMM | OPTST_NO_INIT)
227#else
228# define VER_FLAGS (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
229 OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
230#endif
231#define VER_DESC (rsstats_opt_strs+1282)
232#define VER_name (rsstats_opt_strs+1318)
233#define SAVE_OPTS_DESC (rsstats_opt_strs+1326)
234#define SAVE_OPTS_name (rsstats_opt_strs+1365)
235#define LOAD_OPTS_DESC (rsstats_opt_strs+1375)
236#define LOAD_OPTS_NAME (rsstats_opt_strs+1407)
237#define NO_LOAD_OPTS_name (rsstats_opt_strs+1417)
238#define LOAD_OPTS_pfx (rsstats_opt_strs+1430)
239#define LOAD_OPTS_name (NO_LOAD_OPTS_name + 3)
243extern tOptProc
248static tOptProc
249 doOptInput, doOptOutput, doOptReports, doUsageOpt;
250#define VER_PROC optionPrintVersion
251
252/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
258static tOptDesc optDesc[OPTION_CT] = {
259 { /* entry idx, value */ 0, VALUE_OPT_INPUT,
260 /* equiv idx, value */ 0, VALUE_OPT_INPUT,
261 /* equivalenced to */ NO_EQUIVALENT,
262 /* min, max, act ct */ 0, 1, 0,
263 /* opt state flags */ INPUT_FLAGS, 0,
264 /* last opt argumnt */ { INPUT_DFT_ARG },
265 /* arg list/cookie */ NULL,
266 /* must/cannot opts */ NULL, NULL,
267 /* option proc */ doOptInput,
268 /* desc, NAME, name */ INPUT_DESC, INPUT_NAME, INPUT_name,
269 /* disablement strs */ NULL, NULL },
270
271 { /* entry idx, value */ 1, VALUE_OPT_OUTPUT,
272 /* equiv idx, value */ 1, VALUE_OPT_OUTPUT,
273 /* equivalenced to */ NO_EQUIVALENT,
274 /* min, max, act ct */ 0, 1, 0,
275 /* opt state flags */ OUTPUT_FLAGS, 0,
276 /* last opt argumnt */ { OUTPUT_DFT_ARG },
277 /* arg list/cookie */ NULL,
278 /* must/cannot opts */ NULL, NULL,
279 /* option proc */ doOptOutput,
280 /* desc, NAME, name */ OUTPUT_DESC, OUTPUT_NAME, OUTPUT_name,
281 /* disablement strs */ NULL, NULL },
282
283 { /* entry idx, value */ 2, VALUE_OPT_CLUSTERS,
284 /* equiv idx, value */ 2, VALUE_OPT_CLUSTERS,
285 /* equivalenced to */ NO_EQUIVALENT,
286 /* min, max, act ct */ 0, 1, 0,
287 /* opt state flags */ CLUSTERS_FLAGS, 0,
288 /* last opt argumnt */ { CLUSTERS_DFT_ARG },
289 /* arg list/cookie */ NULL,
290 /* must/cannot opts */ NULL, NULL,
291 /* option proc */ NULL,
292 /* desc, NAME, name */ CLUSTERS_DESC, CLUSTERS_NAME, CLUSTERS_name,
293 /* disablement strs */ NULL, NULL },
294
295 { /* entry idx, value */ 3, VALUE_OPT_REPORTS,
296 /* equiv idx, value */ 3, VALUE_OPT_REPORTS,
297 /* equivalenced to */ NO_EQUIVALENT,
298 /* min, max, act ct */ 0, NOLIMIT, 0,
299 /* opt state flags */ REPORTS_FLAGS, 0,
300 /* last opt argumnt */ { REPORTS_DFT_ARG },
301 /* arg list/cookie */ ReportsCookieBits,
302 /* must/cannot opts */ NULL, NULL,
303 /* option proc */ doOptReports,
304 /* desc, NAME, name */ REPORTS_DESC, REPORTS_NAME, REPORTS_name,
305 /* disablement strs */ NULL, NULL },
306
307 { /* entry idx, value */ INDEX_OPT_VERSION, VALUE_OPT_VERSION,
308 /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_VERSION,
309 /* equivalenced to */ NO_EQUIVALENT,
310 /* min, max, act ct */ 0, 1, 0,
311 /* opt state flags */ VER_FLAGS, AOUSE_VERSION,
312 /* last opt argumnt */ { NULL },
313 /* arg list/cookie */ NULL,
314 /* must/cannot opts */ NULL, NULL,
315 /* option proc */ VER_PROC,
316 /* desc, NAME, name */ VER_DESC, NULL, VER_name,
317 /* disablement strs */ NULL, NULL },
318
319
320
321 { /* entry idx, value */ INDEX_OPT_HELP, VALUE_OPT_HELP,
322 /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_HELP,
323 /* equivalenced to */ NO_EQUIVALENT,
324 /* min, max, act ct */ 0, 1, 0,
325 /* opt state flags */ OPTST_IMM | OPTST_NO_INIT, AOUSE_HELP,
326 /* last opt argumnt */ { NULL },
327 /* arg list/cookie */ NULL,
328 /* must/cannot opts */ NULL, NULL,
329 /* option proc */ doUsageOpt,
330 /* desc, NAME, name */ HELP_DESC, NULL, HELP_name,
331 /* disablement strs */ NULL, NULL },
332
333 { /* entry idx, value */ INDEX_OPT_MORE_HELP, VALUE_OPT_MORE_HELP,
334 /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_MORE_HELP,
335 /* equivalenced to */ NO_EQUIVALENT,
336 /* min, max, act ct */ 0, 1, 0,
337 /* opt state flags */ MORE_HELP_FLAGS, AOUSE_MORE_HELP,
338 /* last opt argumnt */ { NULL },
339 /* arg list/cookie */ NULL,
340 /* must/cannot opts */ NULL, NULL,
341 /* option proc */ optionPagedUsage,
342 /* desc, NAME, name */ MORE_HELP_DESC, NULL, MORE_HELP_name,
343 /* disablement strs */ NULL, NULL },
344
345 { /* entry idx, value */ INDEX_OPT_SAVE_OPTS, VALUE_OPT_SAVE_OPTS,
346 /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_SAVE_OPTS,
347 /* equivalenced to */ NO_EQUIVALENT,
348 /* min, max, act ct */ 0, 1, 0,
349 /* opt state flags */ OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)
350 | OPTST_ARG_OPTIONAL | OPTST_NO_INIT, AOUSE_SAVE_OPTS,
351 /* last opt argumnt */ { NULL },
352 /* arg list/cookie */ NULL,
353 /* must/cannot opts */ NULL, NULL,
354 /* option proc */ NULL,
355 /* desc, NAME, name */ SAVE_OPTS_DESC, NULL, SAVE_OPTS_name,
356 /* disablement strs */ NULL, NULL },
357
358 { /* entry idx, value */ INDEX_OPT_LOAD_OPTS, VALUE_OPT_LOAD_OPTS,
359 /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_LOAD_OPTS,
360 /* equivalenced to */ NO_EQUIVALENT,
361 /* min, max, act ct */ 0, NOLIMIT, 0,
362 /* opt state flags */ OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)
363 | OPTST_DISABLE_IMM, AOUSE_LOAD_OPTS,
364 /* last opt argumnt */ { NULL },
365 /* arg list/cookie */ NULL,
366 /* must/cannot opts */ NULL, NULL,
367 /* option proc */ optionLoadOpt,
368 /* desc, NAME, name */ LOAD_OPTS_DESC, LOAD_OPTS_NAME, LOAD_OPTS_name,
369 /* disablement strs */ NO_LOAD_OPTS_name, LOAD_OPTS_pfx }
370};
371
372
373/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
375#define zPROGNAME (rsstats_opt_strs+1433)
377#define zUsageTitle (rsstats_opt_strs+1441)
379#define zRcName (rsstats_opt_strs+1570)
381static char const * const apzHomeList[2] = {
382 rsstats_opt_strs+1564,
383 NULL };
385#define zBugsAddr (rsstats_opt_strs+1581)
387#define zExplain (rsstats_opt_strs+1603)
389#define zDetail (rsstats_opt_strs+1995)
391#define zFullVersion (rsstats_opt_strs+3361)
392/* extracted from optcode.tlib near line 342 */
393
394#if defined(ENABLE_NLS)
395# define OPTPROC_BASE OPTPROC_TRANSLATE
396 static tOptionXlateProc translate_option_strings;
397#else
398# define OPTPROC_BASE OPTPROC_NONE
399# define translate_option_strings NULL
400#endif /* ENABLE_NLS */
401
402#define rsstats_full_usage (NULL)
403#define rsstats_short_usage (NULL)
404
405#endif /* not defined __doxygen__ */
406
407/*
408 * Create the static procedure(s) declared above.
409 */
417static void
418doUsageOpt(tOptions * opts, tOptDesc * od)
419{
420 int ex_code;
421 ex_code = RSSTATS_EXIT_SUCCESS;
422 optionUsage(&rsstatsOptions, ex_code);
423 /* NOTREACHED */
425 (void)opts;
426 (void)od;
427}
428
429/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
436static void
437doOptInput(tOptions* pOptions, tOptDesc* pOptDesc)
438{
439 static teOptFileType const type =
440 FTYPE_MODE_MAY_EXIST + FTYPE_MODE_NO_OPEN;
441 static tuFileMode mode;
442#ifndef O_CLOEXEC
443# define O_CLOEXEC 0
444#endif
445 mode.file_flags = O_CLOEXEC;
446
447 /*
448 * This function handles special invalid values for "pOptions"
449 */
450 optionFileCheck(pOptions, pOptDesc, type, mode);
451}
452
453/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
460static void
461doOptOutput(tOptions* pOptions, tOptDesc* pOptDesc)
462{
463 static teOptFileType const type =
464 FTYPE_MODE_MAY_EXIST + FTYPE_MODE_NO_OPEN;
465 static tuFileMode mode;
466#ifndef O_CLOEXEC
467# define O_CLOEXEC 0
468#endif
469 mode.file_flags = O_CLOEXEC;
470
471 /*
472 * This function handles special invalid values for "pOptions"
473 */
474 optionFileCheck(pOptions, pOptDesc, type, mode);
475}
476
477/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
484static void
485doOptReports(tOptions* pOptions, tOptDesc* pOptDesc)
486{
487
488/* extracted from optmain.tlib near line 1007 */
489 static char const * const names[2] = {
490 "bdbs", "cluster"
491 };
492 /*
493 * This function handles special invalid values for "pOptions"
494 */
495 optionSetMembers(pOptions, pOptDesc, names, 2);
496}
497/* extracted from optmain.tlib near line 1250 */
498
502#ifndef PKGDATADIR
503# define PKGDATADIR ""
504#endif
505
510#ifndef WITH_PACKAGER
511# define rsstats_packager_info NULL
512#else
514static char const rsstats_packager_info[] =
515 "Packaged by " WITH_PACKAGER
516
517# ifdef WITH_PACKAGER_VERSION
518 " ("WITH_PACKAGER_VERSION")"
519# endif
520
521# ifdef WITH_PACKAGER_BUG_REPORTS
522 "\nReport rsstats bugs to " WITH_PACKAGER_BUG_REPORTS
523# endif
524 "\n";
525#endif
526#ifndef __doxygen__
527
528#endif /* __doxygen__ */
533tOptions rsstatsOptions = {
534 OPTIONS_STRUCT_VERSION,
535 0, NULL, /* original argc + argv */
537 + OPTPROC_ERRSTOP
538 + OPTPROC_SHORTOPT
539 + OPTPROC_LONGOPT
540 + OPTPROC_NO_REQ_OPT
541 + OPTPROC_ENVIRON
542 + OPTPROC_NO_ARGS
543 + OPTPROC_GNUUSAGE ),
544 0, NULL, /* current option index, current option */
547 zFullVersion, apzHomeList, zUsageTitle,
548 zExplain, zDetail, optDesc,
549 zBugsAddr, /* address to send bugs to */
550 NULL, NULL, /* extensions/saved state */
551 optionUsage, /* usage procedure */
552 translate_option_strings, /* translation procedure */
553 /*
554 * Indexes to special options
555 */
556 { INDEX_OPT_MORE_HELP, /* more-help option index */
557 INDEX_OPT_SAVE_OPTS, /* save option index */
558 NO_EQUIVALENT, /* '-#' option index */
559 NO_EQUIVALENT /* index of default opt */
560 },
561 9 /* full option count */, 4 /* user option count */,
563 NULL, NULL,
565};
566
567#if ENABLE_NLS
573#include <stdio.h>
574#include <stdlib.h>
575#include <string.h>
576#include <unistd.h>
577#ifdef HAVE_DCGETTEXT
578# include <gettext.h>
579#endif
580#include <autoopts/usage-txt.h>
581
582static char * AO_gettext(char const * pz);
583static void coerce_it(void ** s);
584
595static char *
596AO_gettext(char const * pz)
597{
598 char * res;
599 if (pz == NULL)
600 return NULL;
601#ifdef HAVE_DCGETTEXT
602 /*
603 * While processing the option_xlateable_txt data, try to use the
604 * "libopts" domain. Once we switch to the option descriptor data,
605 * do *not* use that domain.
606 */
607 if (option_xlateable_txt.field_ct != 0) {
608 res = dgettext("libopts", pz);
609 if (res == pz)
610 res = (char *)VOIDP(_(pz));
611 } else
612 res = (char *)VOIDP(_(pz));
613#else
614 res = (char *)VOIDP(_(pz));
615#endif
616 if (res == pz)
617 return res;
618 res = strdup(res);
619 if (res == NULL) {
620 fputs(_("No memory for duping translated strings\n"), stderr);
622 }
623 return res;
624}
625
630static void coerce_it(void ** s) { *s = AO_gettext(*s);
631}
632
637static void
639{
640 tOptions * const opts = &rsstatsOptions;
641
642 /*
643 * Guard against re-translation. It won't work. The strings will have
644 * been changed by the first pass through this code. One shot only.
645 */
646 if (option_xlateable_txt.field_ct != 0) {
647 /*
648 * Do the translations. The first pointer follows the field count
649 * field. The field count field is the size of a pointer.
650 */
651 char ** ppz = (char**)VOIDP(&(option_xlateable_txt));
652 int ix = option_xlateable_txt.field_ct;
653
654 do {
655 ppz++; /* skip over field_ct */
656 *ppz = AO_gettext(*ppz);
657 } while (--ix > 0);
658 /* prevent re-translation and disable "libopts" domain lookup */
659 option_xlateable_txt.field_ct = 0;
660
661 coerce_it(VOIDP(&(opts->pzCopyright)));
662 coerce_it(VOIDP(&(opts->pzCopyNotice)));
663 coerce_it(VOIDP(&(opts->pzFullVersion)));
664 coerce_it(VOIDP(&(opts->pzUsageTitle)));
665 coerce_it(VOIDP(&(opts->pzExplain)));
666 coerce_it(VOIDP(&(opts->pzDetail)));
667 {
668 tOptDesc * od = opts->pOptDesc;
669 for (ix = opts->optCt; ix > 0; ix--, od++)
670 coerce_it(VOIDP(&(od->pzText)));
671 }
672 }
673}
674#endif /* ENABLE_NLS */
675
676#ifdef DO_NOT_COMPILE_THIS_CODE_IT_IS_FOR_GETTEXT
678static void bogus_function(void) {
679 /* TRANSLATORS:
680
681 The following dummy function was crated solely so that xgettext can
682 extract the correct strings. These strings are actually referenced
683 by a field name in the rsstatsOptions structure noted in the
684 comments below. The literal text is defined in rsstats_opt_strs.
685
686 NOTE: the strings below are segmented with respect to the source string
687 rsstats_opt_strs. The strings above are handed off for translation
688 at run time a paragraph at a time. Consequently, they are presented here
689 for translation a paragraph at a time.
690
691 ALSO: often the description for an option will reference another option
692 by name. These are set off with apostrophe quotes (I hope). Do not
693 translate option names.
694 */
695 /* referenced via rsstatsOptions.pzCopyright */
696 puts(_("rsstats 0.0.1\n\
697Copyright (C) 2024 Francois Cerbelle, all rights reserved.\n\
698This is free software. It is licensed for use, modification and\n\
699redistribution under the terms of the GNU General Public License,\n\
700version 3 or later <http://gnu.org/licenses/gpl.html>\n"));
701
702 /* referenced via rsstatsOptions.pzCopyNotice */
703 puts(_("rsstats is free software: you can redistribute it and/or modify it under\n\
704the terms of the GNU General Public License as published by the Free\n\
705Software Foundation, either version 3 of the License, or (at your option)\n\
706any later version.\n\n"));
707 puts(_("rsstats is distributed in the hope that it will be useful, but WITHOUT ANY\n\
708WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\n\
709FOR A PARTICULAR PURPOSE. See the GNU General Public License for more\n\
710details.\n\n"));
711 puts(_("You should have received a copy of the GNU General Public License along\n\
712with this program. If not, see <http://www.gnu.org/licenses/>.\n"));
713
714 /* referenced via rsstatsOptions.pOptDesc->pzText */
715 puts(_("input CSV file (default: clusterdef.csv)"));
716
717 /* referenced via rsstatsOptions.pOptDesc->pzText */
718 puts(_("output CVS filename for nodes information (default: rsstats.csv)"));
719
720 /* referenced via rsstatsOptions.pOptDesc->pzText */
721 puts(_("comma separated list of clusternames to query (default: all)"));
722
723 /* referenced via rsstatsOptions.pOptDesc->pzText */
724 puts(_("Comma separated list of reports to generate (default: all)"));
725
726 /* referenced via rsstatsOptions.pOptDesc->pzText */
727 puts(_("display extended usage information and exit"));
728
729 /* referenced via rsstatsOptions.pOptDesc->pzText */
730 puts(_("extended usage information passed thru pager"));
731
732 /* referenced via rsstatsOptions.pOptDesc->pzText */
733 puts(_("output version information and exit"));
734
735 /* referenced via rsstatsOptions.pOptDesc->pzText */
736 puts(_("save the option state to a config file"));
737
738 /* referenced via rsstatsOptions.pOptDesc->pzText */
739 puts(_("load options from a config file"));
740
741 /* referenced via rsstatsOptions.pzUsageTitle */
742 puts(_("rsstats - Redis Enterprise Software cluster statistic extraction\n\
743Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n"));
744
745 /* referenced via rsstatsOptions.pzExplain */
746 puts(_("rsstats execute all the reports on each of the defined clusters. The\n\
747cluster definition list is read from the clusterdef.csv file, which can be\n\
748specified with the --input (-i) option, and the reports are written to the\n\
749rsstats.csv file, which can be specified with the --output (-o) option.\n\
750additional information given whenever the usage routine is invoked or with\n\
751the --help (-h) option.\n"));
752
753 /* referenced via rsstatsOptions.pzDetail */
754 puts(_("rsstats executes all reports on the clusters specified in the cluster\n\
755definition list and writes the reports to the output file. The cluster\n\
756list can be filtered by a comma separated list of cluster names with the\n\
757--cluster (-c) option and the reports to be executed can be specified as a\n\
758comma separated list with the --reports (-r) option.\n\n"));
759 puts(_("clusterdef.csv mandatory columns :\n\
760clustername_or_ip,adminname,adminpass,allow_selfsigned_certs,cacert_file\n\n"));
761 puts(_("The CSV input format should conform to the RFC4180: - Records (lines) are\n\
762separated with CR+LF (Windows) with LF-only (Unix) tolerance - Fields are\n\
763separated by a comma - Fields can optionnaly be double-quoted, with a\n\
764starting (very first char) and ending (very last char) double-quote -\n\
765Spaces chars are part of the field values - If a field contains a either a\n\
766comma, a CRLF or a doublequote it needs to be quoted - a double-quote\n\
767inside a double-quoted value needs to be doubled (a \"sample\" value => \"a\n\
768\"\"sample\"\" value\") - A line can not end with a comma as the very last\n\
769character. - Empty lines are not supported.\n\n"));
770 puts(_("Example:\n\n\
771192.168.0.1,admin@demo.com,\n\
772192.168.0.2,admin@demo.com,\"\",false,\"/etc/ssl/cert.pem\"\n\
773127.0.0.1,admin@demo.com,password 192.168.0.3,admin@demo.com,password\n\
774192.168.0.4,admin@demo.com,\"passw,ord\"\n\
775192.168.1.50,admin@demo.com,password,true,\"\"\n\
776127.0.0.1,admin@demo.com,password,true,\"\"\n"));
777
778 /* referenced via rsstatsOptions.pzFullVersion */
779 puts(_("rsstats 0.0.1"));
780
781 /* referenced via rsstatsOptions.pzFullUsage */
782 puts(_("<<<NOT-FOUND>>>"));
783
784 /* referenced via rsstatsOptions.pzShortUsage */
785 puts(_("<<<NOT-FOUND>>>"));
786 /* LIBOPTS-MESSAGES: */
787#line 67 "../autoopts.c"
788 puts(_("allocation of %d bytes failed\n"));
789#line 89 "../autoopts.c"
790 puts(_("allocation of %d bytes failed\n"));
791#line 48 "../init.c"
792 puts(_("AutoOpts function called without option descriptor\n"));
793#line 81 "../init.c"
794 puts(_("\tThis exceeds the compiled library version: "));
795#line 79 "../init.c"
796 puts(_("Automated Options Processing Error!\n"
797 "\t%s called AutoOpts function with structure version %d:%d:%d.\n"));
798#line 78 "../autoopts.c"
799 puts(_("realloc of %d bytes at 0x%p failed\n"));
800#line 83 "../init.c"
801 puts(_("\tThis is less than the minimum library version: "));
802#line 121 "../version.c"
803 puts(_("Automated Options version %s\n"
804 "\tCopyright (C) 1999-2017 by Bruce Korb - all rights reserved\n"));
805#line 49 "../makeshell.c"
806 puts(_("(AutoOpts bug): %s.\n"));
807#line 90 "../reset.c"
808 puts(_("optionResetOpt() called, but reset-option not configured"));
809#line 241 "../usage.c"
810 puts(_("could not locate the 'help' option"));
811#line 330 "../autoopts.c"
812 puts(_("optionProcess() was called with invalid data"));
813#line 697 "../usage.c"
814 puts(_("invalid argument type specified"));
815#line 568 "../find.c"
816 puts(_("defaulted to option with optional arg"));
817#line 76 "../alias.c"
818 puts(_("aliasing option is out of range."));
819#line 210 "../enum.c"
820 puts(_("%s error: the keyword '%s' is ambiguous for %s\n"));
821#line 78 "../find.c"
822 puts(_(" The following options match:\n"));
823#line 263 "../find.c"
824 puts(_("%s: ambiguous option name: %s (matches %d options)\n"));
825#line 161 "../check.c"
826 puts(_("%s: Command line arguments required\n"));
827#line 43 "../alias.c"
828 puts(_("%d %s%s options allowed\n"));
829#line 56 "../makeshell.c"
830 puts(_("%s error %d (%s) calling %s for '%s'\n"));
831#line 268 "../makeshell.c"
832 puts(_("interprocess pipe"));
833#line 171 "../version.c"
834 puts(_("error: version option argument '%c' invalid. Use:\n"
835 "\t'v' - version only\n"
836 "\t'c' - version and copyright\n"
837 "\t'n' - version and full copyright notice\n"));
838#line 58 "../check.c"
839 puts(_("%s error: the '%s' and '%s' options conflict\n"));
840#line 187 "../find.c"
841 puts(_("%s: The '%s' option has been disabled."));
842#line 400 "../find.c"
843 puts(_("%s: The '%s' option has been disabled."));
844#line 38 "../alias.c"
845 puts(_("-equivalence"));
846#line 439 "../find.c"
847 puts(_("%s: illegal option -- %c\n"));
848#line 110 "../reset.c"
849 puts(_("%s: illegal option -- %c\n"));
850#line 241 "../find.c"
851 puts(_("%s: illegal option -- %s\n"));
852#line 740 "../find.c"
853 puts(_("%s: illegal option -- %s\n"));
854#line 118 "../reset.c"
855 puts(_("%s: illegal option -- %s\n"));
856#line 305 "../find.c"
857 puts(_("%s: unknown vendor extension option -- %s\n"));
858#line 135 "../enum.c"
859 puts(_(" or an integer from %d through %d\n"));
860#line 145 "../enum.c"
861 puts(_(" or an integer from %d through %d\n"));
862#line 696 "../usage.c"
863 puts(_("%s error: invalid option descriptor for %s\n"));
864#line 1030 "../usage.c"
865 puts(_("%s error: invalid option descriptor for %s\n"));
866#line 355 "../find.c"
867 puts(_("%s: invalid option name: %s\n"));
868#line 497 "../find.c"
869 puts(_("%s: The '%s' option requires an argument.\n"));
870#line 150 "../autoopts.c"
871 puts(_("(AutoOpts bug): Equivalenced option '%s' was equivalenced to both\n"
872 "\t'%s' and '%s'."));
873#line 94 "../check.c"
874 puts(_("%s error: The %s option is required\n"));
875#line 602 "../find.c"
876 puts(_("%s: The '%s' option cannot have an argument.\n"));
877#line 151 "../check.c"
878 puts(_("%s: Command line arguments are not allowed.\n"));
879#line 568 "../save.c"
880 puts(_("error %d (%s) creating %s\n"));
881#line 210 "../enum.c"
882 puts(_("%s error: '%s' does not match any %s keywords.\n"));
883#line 93 "../reset.c"
884 puts(_("%s error: The '%s' option requires an argument.\n"));
885#line 122 "../save.c"
886 puts(_("error %d (%s) stat-ing %s\n"));
887#line 175 "../save.c"
888 puts(_("error %d (%s) stat-ing %s\n"));
889#line 143 "../restore.c"
890 puts(_("%s error: no saved option state\n"));
891#line 225 "../autoopts.c"
892 puts(_("'%s' is not a command line option.\n"));
893#line 113 "../time.c"
894 puts(_("%s error: '%s' is not a recognizable date/time.\n"));
895#line 50 "../time.c"
896 puts(_("%s error: '%s' is not a recognizable time duration.\n"));
897#line 92 "../check.c"
898 puts(_("%s error: The %s option must appear %d times.\n"));
899#line 165 "../numeric.c"
900 puts(_("%s error: '%s' is not a recognizable number.\n"));
901#line 176 "../enum.c"
902 puts(_("%s error: %s exceeds %s keyword count\n"));
903#line 279 "../usage.c"
904 puts(_("Try '%s %s' for more information.\n"));
905#line 45 "../alias.c"
906 puts(_("one %s%s option allowed\n"));
907#line 170 "../makeshell.c"
908 puts(_("standard output"));
909#line 905 "../makeshell.c"
910 puts(_("standard output"));
911#line 223 "../usage.c"
912 puts(_("standard output"));
913#line 364 "../usage.c"
914 puts(_("standard output"));
915#line 574 "../usage.c"
916 puts(_("standard output"));
917#line 178 "../version.c"
918 puts(_("standard output"));
919#line 223 "../usage.c"
920 puts(_("standard error"));
921#line 364 "../usage.c"
922 puts(_("standard error"));
923#line 574 "../usage.c"
924 puts(_("standard error"));
925#line 178 "../version.c"
926 puts(_("standard error"));
927#line 170 "../makeshell.c"
928 puts(_("write"));
929#line 905 "../makeshell.c"
930 puts(_("write"));
931#line 222 "../usage.c"
932 puts(_("write"));
933#line 363 "../usage.c"
934 puts(_("write"));
935#line 573 "../usage.c"
936 puts(_("write"));
937#line 177 "../version.c"
938 puts(_("write"));
939#line 60 "../numeric.c"
940 puts(_("%s error: %s option value %ld is out of range.\n"));
941#line 44 "../check.c"
942 puts(_("%s error: %s option requires the %s option\n"));
943#line 121 "../save.c"
944 puts(_("%s warning: cannot save options - %s not regular file\n"));
945#line 174 "../save.c"
946 puts(_("%s warning: cannot save options - %s not regular file\n"));
947#line 193 "../save.c"
948 puts(_("%s warning: cannot save options - %s not regular file\n"));
949#line 567 "../save.c"
950 puts(_("%s warning: cannot save options - %s not regular file\n"));
951 /* END-LIBOPTS-MESSAGES */
952
953 /* USAGE-TEXT: */
954#line 822 "../usage.c"
955 puts(_("\t\t\t\t- an alternate for '%s'\n"));
956#line 1097 "../usage.c"
957 puts(_("Version, usage and configuration options:"));
958#line 873 "../usage.c"
959 puts(_("\t\t\t\t- default option for unnamed options\n"));
960#line 786 "../usage.c"
961 puts(_("\t\t\t\t- disabled as '--%s'\n"));
962#line 1066 "../usage.c"
963 puts(_(" --- %-14s %s\n"));
964#line 1064 "../usage.c"
965 puts(_("This option has been disabled"));
966#line 813 "../usage.c"
967 puts(_("\t\t\t\t- enabled by default\n"));
968#line 40 "../alias.c"
969 puts(_("%s error: only "));
970#line 1143 "../usage.c"
971 puts(_(" - examining environment variables named %s_*\n"));
972#line 168 "../file.c"
973 puts(_("\t\t\t\t- file must not pre-exist\n"));
974#line 172 "../file.c"
975 puts(_("\t\t\t\t- file must pre-exist\n"));
976#line 329 "../usage.c"
977 puts(_("Options are specified by doubled hyphens and their name or by a single\n"
978 "hyphen and the flag character.\n"));
979#line 882 "../makeshell.c"
980 puts(_("\n"
981 "= = = = = = = =\n\n"
982 "This incarnation of genshell will produce\n"
983 "a shell script to parse the options for %s:\n\n"));
984#line 142 "../enum.c"
985 puts(_(" or an integer mask with any of the lower %d bits set\n"));
986#line 846 "../usage.c"
987 puts(_("\t\t\t\t- is a set membership option\n"));
988#line 867 "../usage.c"
989 puts(_("\t\t\t\t- must appear between %d and %d times\n"));
990#line 331 "../usage.c"
991 puts(_("Options are specified by single or double hyphens and their name.\n"));
992#line 853 "../usage.c"
993 puts(_("\t\t\t\t- may appear multiple times\n"));
994#line 840 "../usage.c"
995 puts(_("\t\t\t\t- may not be preset\n"));
996#line 1258 "../usage.c"
997 puts(_(" Arg Option-Name Description\n"));
998#line 1194 "../usage.c"
999 puts(_(" Flg Arg Option-Name Description\n"));
1000#line 1252 "../usage.c"
1001 puts(_(" Flg Arg Option-Name Description\n"));
1002#line 1253 "../usage.c"
1003 puts(_(" %3s %s"));
1004#line 1259 "../usage.c"
1005 puts(_(" %3s %s"));
1006#line 336 "../usage.c"
1007 puts(_("The '-#<number>' option may omit the hash char\n"));
1008#line 332 "../usage.c"
1009 puts(_("All arguments are named options.\n"));
1010#line 920 "../usage.c"
1011 puts(_(" - reading file %s"));
1012#line 358 "../usage.c"
1013 puts(_("\n"
1014 "Please send bug reports to: <%s>\n"));
1015#line 100 "../version.c"
1016 puts(_("\n"
1017 "Please send bug reports to: <%s>\n"));
1018#line 129 "../version.c"
1019 puts(_("\n"
1020 "Please send bug reports to: <%s>\n"));
1021#line 852 "../usage.c"
1022 puts(_("\t\t\t\t- may NOT appear - preset only\n"));
1023#line 893 "../usage.c"
1024 puts(_("\n"
1025 "The following option preset mechanisms are supported:\n"));
1026#line 1141 "../usage.c"
1027 puts(_("\n"
1028 "The following option preset mechanisms are supported:\n"));
1029#line 631 "../usage.c"
1030 puts(_("prohibits these options:\n"));
1031#line 626 "../usage.c"
1032 puts(_("prohibits the option '%s'\n"));
1033#line 81 "../numeric.c"
1034 puts(_("%s%ld to %ld"));
1035#line 79 "../numeric.c"
1036 puts(_("%sgreater than or equal to %ld"));
1037#line 75 "../numeric.c"
1038 puts(_("%s%ld exactly"));
1039#line 68 "../numeric.c"
1040 puts(_("%sit must lie in one of the ranges:\n"));
1041#line 68 "../numeric.c"
1042 puts(_("%sit must be in the range:\n"));
1043#line 88 "../numeric.c"
1044 puts(_(", or\n"));
1045#line 66 "../numeric.c"
1046 puts(_("%sis scalable with a suffix: k/K/m/M/g/G/t/T\n"));
1047#line 77 "../numeric.c"
1048 puts(_("%sless than or equal to %ld"));
1049#line 339 "../usage.c"
1050 puts(_("Operands and options may be intermixed. They will be reordered.\n"));
1051#line 601 "../usage.c"
1052 puts(_("requires the option '%s'\n"));
1053#line 604 "../usage.c"
1054 puts(_("requires these options:\n"));
1055#line 1270 "../usage.c"
1056 puts(_(" Arg Option-Name Req? Description\n"));
1057#line 1264 "../usage.c"
1058 puts(_(" Flg Arg Option-Name Req? Description\n"));
1059#line 143 "../enum.c"
1060 puts(_("or you may use a numeric representation. Preceding these with a '!'\n"
1061 "will clear the bits, specifying 'none' will clear all bits, and 'all'\n"
1062 "will set them all. Multiple entries may be passed as an option\n"
1063 "argument list.\n"));
1064#line 859 "../usage.c"
1065 puts(_("\t\t\t\t- may appear up to %d times\n"));
1066#line 52 "../enum.c"
1067 puts(_("The valid \"%s\" option keywords are:\n"));
1068#line 1101 "../usage.c"
1069 puts(_("The next option supports vendor supported extra options:"));
1070#line 722 "../usage.c"
1071 puts(_("These additional options are:"));
1072 /* END-USAGE-TEXT */
1073}
1074#endif /* uncompilable code */
1075#ifdef __cplusplus
1076}
1077#endif
1078/* rsstats-opts.c ends here */
#define OUTPUT_name
Name string for the output option.
Definition: rsstats-opts.c:173
#define NULL
Definition: rsstats-opts.c:64
tOptProc optionTimeDate
Definition: rsstats-opts.c:246
tOptProc optionBooleanVal
Declare option callback procedures.
#define zCopyright
Definition: rsstats-opts.c:59
#define INPUT_FLAGS
Compiled in flag settings for the input option.
Definition: rsstats-opts.c:162
#define INPUT_DESC
input option description:
Definition: rsstats-opts.c:154
#define LOAD_OPTS_DESC
Definition: rsstats-opts.c:235
#define VER_DESC
Definition: rsstats-opts.c:231
#define OUTPUT_NAME
Upper-cased name for the output option.
Definition: rsstats-opts.c:171
#define OUTPUT_DESC
output option description:
Definition: rsstats-opts.c:169
#define SAVE_OPTS_name
Definition: rsstats-opts.c:234
#define OUTPUT_DFT_ARG
The compiled in default value for the output option argument.
Definition: rsstats-opts.c:175
#define zDetail
Extra detail explaining what rsstats does.
Definition: rsstats-opts.c:389
tOptProc optionPrintVersion
Definition: rsstats-opts.c:245
#define zPROGNAME
Reference to the upper cased version of rsstats.
Definition: rsstats-opts.c:375
FILE * option_usage_fp
#define LOAD_OPTS_pfx
Definition: rsstats-opts.c:238
#define zUsageTitle
Reference to the title line for rsstats usage.
Definition: rsstats-opts.c:377
tOptProc optionNumericVal
Definition: rsstats-opts.c:244
#define REPORTS_FLAGS
Compiled in flag settings for the reports option.
Definition: rsstats-opts.c:208
#define LOAD_OPTS_NAME
Definition: rsstats-opts.c:236
tOptProc optionNestedVal
Definition: rsstats-opts.c:244
#define SAVE_OPTS_DESC
Definition: rsstats-opts.c:233
#define VER_FLAGS
Definition: rsstats-opts.c:228
#define VER_name
Definition: rsstats-opts.c:232
#define HELP_DESC
Definition: rsstats-opts.c:214
tOptProc optionStackArg
Definition: rsstats-opts.c:246
tOptProc optionTimeVal
Definition: rsstats-opts.c:246
#define HELP_name
Definition: rsstats-opts.c:215
tOptProc optionResetOpt
Definition: rsstats-opts.c:245
#define ReportsCookieBits
Definition: rsstats-opts.c:206
#define rsstats_full_usage
Definition: rsstats-opts.c:402
#define CLUSTERS_DFT_ARG
The compiled in default value for the clusters option argument.
Definition: rsstats-opts.c:190
#define LOAD_OPTS_name
Definition: rsstats-opts.c:239
#define CLUSTERS_name
Name string for the clusters option.
Definition: rsstats-opts.c:188
#define PKGDATADIR
The directory containing the data associated with rsstats.
Definition: rsstats-opts.c:503
#define zRcName
rsstats configuration file name.
Definition: rsstats-opts.c:379
tOptProc optionUnstackArg
Definition: rsstats-opts.c:247
#define INPUT_DFT_ARG
The compiled in default value for the input option argument.
Definition: rsstats-opts.c:160
#define MORE_HELP_name
Definition: rsstats-opts.c:222
#define OPTPROC_BASE
Definition: rsstats-opts.c:398
#define REPORTS_DESC
reports option description:
Definition: rsstats-opts.c:199
tOptProc optionVendorOption
Definition: rsstats-opts.c:247
tOptions rsstatsOptions
The option definitions for rsstats.
Definition: rsstats-opts.c:533
#define zLicenseDescrip
Definition: rsstats-opts.c:60
#define VER_PROC
Definition: rsstats-opts.c:250
#define REPORTS_DFT_ARG
The compiled in default value for the reports option argument.
Definition: rsstats-opts.c:205
#define MORE_HELP_FLAGS
Definition: rsstats-opts.c:223
#define REPORTS_NAME
Upper-cased name for the reports option.
Definition: rsstats-opts.c:201
#define CLUSTERS_NAME
Upper-cased name for the clusters option.
Definition: rsstats-opts.c:186
#define MORE_HELP_DESC
Definition: rsstats-opts.c:221
#define INPUT_name
Name string for the input option.
Definition: rsstats-opts.c:158
#define zBugsAddr
The rsstats program bug email address.
Definition: rsstats-opts.c:385
#define OUTPUT_FLAGS
Compiled in flag settings for the output option.
Definition: rsstats-opts.c:177
#define O_CLOEXEC
#define INPUT_NAME
Upper-cased name for the input option.
Definition: rsstats-opts.c:156
#define CLUSTERS_FLAGS
Compiled in flag settings for the clusters option.
Definition: rsstats-opts.c:192
#define translate_option_strings
Definition: rsstats-opts.c:399
#define rsstats_short_usage
Definition: rsstats-opts.c:403
tOptProc optionPagedUsage
Definition: rsstats-opts.c:245
#define zFullVersion
The full version string for rsstats.
Definition: rsstats-opts.c:391
#define rsstats_packager_info
Information about the person or institution that packaged rsstats for the current distribution.
Definition: rsstats-opts.c:511
#define REPORTS_name
Name string for the reports option.
Definition: rsstats-opts.c:203
#define NO_LOAD_OPTS_name
Definition: rsstats-opts.c:237
#define CLUSTERS_DESC
clusters option description:
Definition: rsstats-opts.c:184
#define zExplain
Clarification/explanation of what rsstats does.
Definition: rsstats-opts.c:387
#define VALUE_OPT_INPUT
Interface defines for specific options.
Definition: rsstats-opts.h:144
#define VALUE_OPT_HELP
option flag (value) for help-value option
Definition: rsstats-opts.h:155
#define OPTION_CT
count of all options for rsstats
Definition: rsstats-opts.h:88
#define _(_s)
Definition: rsstats-opts.h:229
#define VALUE_OPT_VERSION
option flag (value) for version-value option
Definition: rsstats-opts.h:159
#define VALUE_OPT_OUTPUT
Definition: rsstats-opts.h:145
#define VALUE_OPT_SAVE_OPTS
option flag (value) for save-opts-value option
Definition: rsstats-opts.h:161
#define VALUE_OPT_MORE_HELP
option flag (value) for more-help-value option
Definition: rsstats-opts.h:157
#define VALUE_OPT_LOAD_OPTS
option flag (value) for load-opts-value option
Definition: rsstats-opts.h:163
#define VALUE_OPT_REPORTS
Definition: rsstats-opts.h:147
@ RSSTATS_EXIT_FAILURE
Definition: rsstats-opts.h:135
@ RSSTATS_EXIT_SUCCESS
Definition: rsstats-opts.h:134
@ INDEX_OPT_HELP
Definition: rsstats-opts.h:82
@ INDEX_OPT_VERSION
Definition: rsstats-opts.h:81
@ INDEX_OPT_MORE_HELP
Definition: rsstats-opts.h:83
@ INDEX_OPT_LOAD_OPTS
Definition: rsstats-opts.h:85
@ INDEX_OPT_SAVE_OPTS
Definition: rsstats-opts.h:84
#define VALUE_OPT_CLUSTERS
Definition: rsstats-opts.h:146