add osmo-bsc --vty-ref-xml: dump VTY ref XML to stdout

Add only a long option to not clutter the cmdline namespace.

To add a long option without a short letter is slightly complex: use the 'flag'
and 'val' mechanism as in 'man 3 getopt' to write an option index to
long_option.

Depends: Ic74bbdb6dc5ea05f03c791cc70184861e39cd492 (libosmocore)
Change-Id: I316efedb2c1652791434ecf14a1e261367cd2fb7
This commit is contained in:
Neels Hofmeyr 2020-05-14 17:46:26 +02:00 committed by neels
parent b5ccf09fc4
commit 77c330d57c
1 changed files with 12 additions and 0 deletions

View File

@ -104,12 +104,14 @@ static void print_help()
printf(" -e --log-level number Set a global loglevel.\n");
printf(" -r --rf-ctl NAME A unix domain socket to listen for cmds.\n");
printf(" -t --testmode A special mode to provoke failures at the MSC.\n");
printf(" --vty-ref-xml Generate the VTY reference XML output and exit.\n");
}
static void handle_options(int argc, char **argv)
{
while (1) {
int option_index = 0, c;
static int long_option = 0;
static struct option long_options[] = {
{"help", 0, 0, 'h'},
{"debug", 1, 0, 'd'},
@ -122,6 +124,7 @@ static void handle_options(int argc, char **argv)
{"log-level", 1, 0, 'e'},
{"rf-ctl", 1, 0, 'r'},
{"testmode", 0, 0, 't'},
{"vty-ref-xml", 0, &long_option, 1},
{0, 0, 0, 0}
};
@ -135,6 +138,15 @@ static void handle_options(int argc, char **argv)
print_usage();
print_help();
exit(0);
case 0:
switch (long_option) {
case 1:
vty_dump_xml_ref(stdout);
exit(0);
default:
fprintf(stderr, "error parsing cmdline options\n");
exit(2);
}
case 's':
log_set_use_color(osmo_stderr_target, 0);
break;