int main(int argc, char **argv) { int ret; parse_loglevel(argc, argv, options); av_register_all(); avformat_network_init(); init_opts(); #if CONFIG_AVDEVICE avdevice_register_all(); #endif show_banner(); parse_options(NULL, argc, argv, options, opt_input_file); if (!input_filename) { show_usage(); fprintf(stderr, "You have to specify one input file.\n"); fprintf(stderr, "Use -h to get full help or, even better, run 'man %s'.\n", program_name); exit(1); } ret = probe_file(input_filename); uninit_opts(); av_dict_free(&fmt_entries_to_show); avformat_network_deinit(); return ret; }
int log_init(int type, char *level, char *name, char *server, short port) { struct logger *l = &logger; int levellog = parse_loglevel(level); l->level = MAX(LOG_EMERG, MIN(levellog, LOG_DEBUG)); l->type = type; l->nerror = 0; if (type & GENERIC_FILE) { return log_init_file(name); } if (type & DATABASE) { return log_init_db(server, port); } if (type & LEVELDB) { return log_init_leveldb(name); } return 0; }
int main(int argc, char **argv) { int ret; uint8_t *buffer = av_malloc(AVP_BUFFSIZE); if (!buffer) exit(1); register_exit(avprobe_cleanup); options = real_options; parse_loglevel(argc, argv, options); av_register_all(); avformat_network_init(); init_opts(); #if CONFIG_AVDEVICE avdevice_register_all(); #endif show_banner(); octx.print_header = ini_print_header; octx.print_footer = ini_print_footer; octx.print_array_header = ini_print_array_header; octx.print_array_footer = ini_print_array_footer; octx.print_object_header = ini_print_object_header; octx.print_integer = ini_print_integer; octx.print_string = ini_print_string; parse_options(NULL, argc, argv, options, opt_input_file); if (!input_filename) { show_usage(); fprintf(stderr, "You have to specify one input file.\n"); fprintf(stderr, "Use -h to get full help or, even better, run 'man %s'.\n", program_name); exit_program(1); } probe_out = avio_alloc_context(buffer, AVP_BUFFSIZE, 1, NULL, NULL, probe_buf_write, NULL); if (!probe_out) exit_program(1); probe_header(); ret = probe_file(input_filename); probe_footer(); avio_flush(probe_out); av_freep(&probe_out); av_freep(&buffer); uninit_opts(); avformat_network_deinit(); return ret; }
int main(int argc, char **argv) { int ret; parse_loglevel(argc, argv, options); av_register_all(); init_opts(); #if CONFIG_AVDEVICE avdevice_register_all(); #endif opt_loglevel(NULL, "quiet"); parse_options(NULL, argc, argv, options, opt_input_file); if(!input_filename) input_filename = "/dev/stdin"; ret = probe_file(input_filename); // FIXME - do proper error handling return ret; }
int parse_arguments (int argc, char *argv[]) { if (argc <= 0) { return 0; } options.help = 0; options.version = 0; options.logger = LOGGER_STDERR; #ifdef BADVPN_USE_SYSLOG options.logger_syslog_facility = "daemon"; options.logger_syslog_ident = argv[0]; #endif options.loglevel = -1; for (int i = 0; i < BLOG_NUM_CHANNELS; i++) { options.loglevels[i] = -1; } options.config_file = NULL; options.syntax_only = 0; options.retry_time = DEFAULT_RETRY_TIME; options.signal_exit_code = DEFAULT_SIGNAL_EXIT_CODE; options.no_udev = 0; options.extra_args = NULL; options.num_extra_args = 0; for (int i = 1; i < argc; i++) { char *arg = argv[i]; if (!strcmp(arg, "--help")) { options.help = 1; } else if (!strcmp(arg, "--version")) { options.version = 1; } else if (!strcmp(arg, "--logger")) { if (1 >= argc - i) { fprintf(stderr, "%s: requires an argument\n", arg); return 0; } char *arg2 = argv[i + 1]; if (!strcmp(arg2, "stdout")) { options.logger = LOGGER_STDOUT; } else if (!strcmp(arg2, "stderr")) { options.logger = LOGGER_STDERR; } #ifdef BADVPN_USE_SYSLOG else if (!strcmp(arg2, "syslog")) { options.logger = LOGGER_SYSLOG; } #endif else { fprintf(stderr, "%s: wrong argument\n", arg); return 0; } i++; } #ifdef BADVPN_USE_SYSLOG else if (!strcmp(arg, "--syslog-facility")) { if (1 >= argc - i) { fprintf(stderr, "%s: requires an argument\n", arg); return 0; } options.logger_syslog_facility = argv[i + 1]; i++; } else if (!strcmp(arg, "--syslog-ident")) { if (1 >= argc - i) { fprintf(stderr, "%s: requires an argument\n", arg); return 0; } options.logger_syslog_ident = argv[i + 1]; i++; } #endif else if (!strcmp(arg, "--loglevel")) { if (1 >= argc - i) { fprintf(stderr, "%s: requires an argument\n", arg); return 0; } if ((options.loglevel = parse_loglevel(argv[i + 1])) < 0) { fprintf(stderr, "%s: wrong argument\n", arg); return 0; } i++; } else if (!strcmp(arg, "--channel-loglevel")) { if (2 >= argc - i) { fprintf(stderr, "%s: requires two arguments\n", arg); return 0; } int channel = BLogGlobal_GetChannelByName(argv[i + 1]); if (channel < 0) { fprintf(stderr, "%s: wrong channel argument\n", arg); return 0; } int loglevel = parse_loglevel(argv[i + 2]); if (loglevel < 0) { fprintf(stderr, "%s: wrong loglevel argument\n", arg); return 0; } options.loglevels[channel] = loglevel; i += 2; } else if (!strcmp(arg, "--config-file")) { if (1 >= argc - i) { fprintf(stderr, "%s: requires an argument\n", arg); return 0; } options.config_file = argv[i + 1]; i++; } else if (!strcmp(arg, "--syntax-only")) { options.syntax_only = 1; } else if (!strcmp(arg, "--retry-time")) { if (1 >= argc - i) { fprintf(stderr, "%s: requires an argument\n", arg); return 0; } if ((options.retry_time = atoi(argv[i + 1])) < 0) { fprintf(stderr, "%s: wrong argument\n", arg); return 0; } i++; } else if (!strcmp(arg, "--signal-exit-code")) { if (1 >= argc - i) { fprintf(stderr, "%s: requires an argument\n", arg); return 0; } if ((options.signal_exit_code = atoi(argv[i + 1])) < 0) { fprintf(stderr, "%s: wrong argument\n", arg); return 0; } i++; } else if (!strcmp(arg, "--no-udev")) { options.no_udev = 1; } else if (!strcmp(arg, "--")) { options.extra_args = &argv[i + 1]; options.num_extra_args = argc - i - 1; i += options.num_extra_args; } else if (!string_begins_with(arg, "--")) { if (options.config_file) { fprintf(stderr, "%s: program is already specified (did you mean to use -- ?)\n", arg); return 0; } options.config_file = argv[i]; options.extra_args = &argv[i + 1]; options.num_extra_args = argc - i - 1; i += options.num_extra_args; } else { fprintf(stderr, "unknown option: %s\n", arg); return 0; } } if (options.help || options.version) { return 1; } if (!options.config_file) { fprintf(stderr, "No program is specified.\n"); return 0; } return 1; }