Main: Improve BIRD help messages

This commit is contained in:
Pavel Tvrdik 2016-09-08 16:27:40 +02:00 committed by Ondrej Zajicek (work)
parent 6273fcf072
commit 292f7858e6

View file

@ -617,7 +617,7 @@ signal_init(void)
* Parsing of command-line arguments * Parsing of command-line arguments
*/ */
static char *opt_list = "c:dD:ps:P:u:g:flR"; static char *opt_list = "c:dD:ps:P:u:g:flRh";
static int parse_and_exit; static int parse_and_exit;
char *bird_name; char *bird_name;
static char *use_user; static char *use_user;
@ -625,10 +625,43 @@ static char *use_group;
static int run_in_foreground = 0; static int run_in_foreground = 0;
static void static void
usage(void) display_usage(void)
{ {
fprintf(stderr, "Usage: %s [-c <config-file>] [-d] [-D <debug-file>] [-p] [-s <control-socket>] [-P <pid-file>] [-u <user>] [-g <group>] [-f] [-l] [-R]\n", bird_name); fprintf(stderr, "Usage: %s [--version] [--help] [-c <config-file>] [OPTIONS]\n", bird_name);
exit(1); }
static void
display_help(void)
{
display_usage();
fprintf(stderr,
"\n"
"Options: \n"
" -c <config-file> Use given configuration file instead\n"
" of prefix/etc/bird.conf\n"
" -d Enable debug messages and run bird in foreground\n"
" -D <debug-file> Log debug messages to given file instead of stderr\n"
" -f Run bird in foreground\n"
" -g <group> Use given group ID\n"
" -h, --help Display this information\n"
" -l Look for a configuration file and a communication socket\n"
" file in the current working directory\n"
" -p Test configuration file and exit without start\n"
" -P <pid-file> Create a PID file with given filename\n"
" -R Apply graceful restart recovery after start\n"
" -s <control-socket> Use given filename for a control socket\n"
" -u <user> Drop privileges and use given user ID\n"
" --version Display version of BIRD\n");
exit(0);
}
static void
display_version(void)
{
fprintf(stderr, "BIRD version " BIRD_VERSION "\n");
exit(0);
} }
static inline char * static inline char *
@ -702,12 +735,9 @@ parse_args(int argc, char **argv)
if (argc == 2) if (argc == 2)
{ {
if (!strcmp(argv[1], "--version")) if (!strcmp(argv[1], "--version"))
{ display_version();
fprintf(stderr, "BIRD version " BIRD_VERSION "\n");
exit(0);
}
if (!strcmp(argv[1], "--help")) if (!strcmp(argv[1], "--help"))
usage(); display_help();
} }
while ((c = getopt(argc, argv, opt_list)) >= 0) while ((c = getopt(argc, argv, opt_list)) >= 0)
switch (c) switch (c)
@ -751,11 +781,19 @@ parse_args(int argc, char **argv)
case 'R': case 'R':
graceful_restart_recovery(); graceful_restart_recovery();
break; break;
case 'h':
display_help();
break;
default: default:
usage(); fputc('\n', stderr);
display_usage();
exit(1);
} }
if (optind < argc) if (optind < argc)
usage(); {
display_usage();
exit(1);
}
} }
/* /*