]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - audiod.c
audiod: Include help for receivers/filter/writers in help output.
[paraslash.git] / audiod.c
index 22611eb0db41f98c6ece8cfc70422eee478b5d63..e3db6bea822d4f6fd5954e19436f28358b13d906 100644 (file)
--- a/audiod.c
+++ b/audiod.c
@@ -1069,6 +1069,24 @@ static void set_initial_status(void)
                PARA_WARNING_LOG("invalid mode\n");
 }
 
+__noreturn static void print_help_and_die(void)
+{
+       int d = conf.detailed_help_given;
+       const char **p = d? audiod_args_info_detailed_help
+               : audiod_args_info_help;
+
+       printf_or_die("%s\n\n", AUDIOD_CMDLINE_PARSER_PACKAGE "-"
+               AUDIOD_CMDLINE_PARSER_VERSION);
+       printf_or_die("%s\n\n", audiod_args_info_usage);
+       for (; *p; p++)
+               printf_or_die("%s\n", *p);
+       print_receiver_helps(d);
+       print_filter_helps(d);
+       print_writer_helps(d);
+       exit(0);
+}
+
+
 /**
  * the main function of para_audiod
  *
@@ -1112,8 +1130,10 @@ int main(int argc, char *argv[])
        }
        if (conf.logfile_given)
                logfile = open_log(conf.logfile_arg);
-       log_welcome("para_audiod", conf.loglevel_arg);
        i = init_stream_io();
+       if (conf.help_given || conf.detailed_help_given)
+               print_help_and_die();
+       log_welcome("para_audiod", conf.loglevel_arg);
        if (i < 0) {
                PARA_EMERG_LOG("init stream io error: %s\n", para_strerror(-i));
                exit(EXIT_FAILURE);