diff options
Diffstat (limited to 'polyp/cmdline.c')
-rw-r--r-- | polyp/cmdline.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/polyp/cmdline.c b/polyp/cmdline.c index aba20af1..1d650185 100644 --- a/polyp/cmdline.c +++ b/polyp/cmdline.c @@ -77,6 +77,7 @@ void pa_cmdline_help(const char *argv0) { " -v Verbose startup\n" " -X SECS Terminate the daemon after the last client quit and this time passed\n" " -h Show this help\n" + " -l TARGET Specify the log target (syslog, stderr, auto)\n" " -V Show version\n", e, cfg); pa_xfree(cfg); @@ -97,13 +98,14 @@ struct pa_cmdline* pa_cmdline_parse(int argc, char * const argv []) { cmdline->stay_root = cmdline->version = cmdline->disallow_module_loading = 0; - cmdline->fail = 1; + cmdline->fail = cmdline->auto_log_target = 1; cmdline->quit_after_last_client_time = -1; + cmdline->log_target = -1; buf = pa_strbuf_new(); assert(buf); - while ((c = getopt(argc, argv, "L:F:CDhfvrRVndX:")) != -1) { + while ((c = getopt(argc, argv, "L:F:CDhfvrRVndX:l:")) != -1) { switch (c) { case 'L': pa_strbuf_printf(buf, "load %s\n", optarg); @@ -144,6 +146,20 @@ struct pa_cmdline* pa_cmdline_parse(int argc, char * const argv []) { case 'X': cmdline->quit_after_last_client_time = atoi(optarg); break; + case 'l': + if (!strcmp(optarg, "syslog")) { + cmdline->auto_log_target = 0; + cmdline->log_target = PA_LOG_SYSLOG; + } else if (!strcmp(optarg, "stderr")) { + cmdline->auto_log_target = 0; + cmdline->log_target = PA_LOG_STDERR; + } else if (!strcmp(optarg, "auto")) + cmdline->auto_log_target = 1; + else { + pa_log(__FILE__": Invalid log target: use either 'syslog', 'stderr' or 'auto'.\n"); + goto fail; + } + break; default: goto fail; } |