From 437fe4e8719276892f85d29d6e7f48caa1c021a9 Mon Sep 17 00:00:00 2001 From: Nikola Pajkovsky Date: Mon, 28 Mar 2011 10:03:33 +0200 Subject: Ticket #178 abrt-cli should provide an option to select analyzer Signed-off-by: Nikola Pajkovsky --- src/cli/cli.c | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) (limited to 'src/cli/cli.c') diff --git a/src/cli/cli.c b/src/cli/cli.c index 0af9ef2b..8cace596 100644 --- a/src/cli/cli.c +++ b/src/cli/cli.c @@ -361,6 +361,9 @@ int main(int argc, char** argv) print_usage_and_die(argv[0]); } + /* Get settings */ + load_event_config_data(); + /* Do the selected operation. */ int exitcode = 0; switch (op) @@ -410,15 +413,37 @@ int main(int argc, char** argv) } case OPT_INFO: { - if (run_analyze_event(dump_dir_name) != 0) - return 1; - /* Load crash_data from (possibly updated by analyze) dump dir */ struct dump_dir *dd = dd_opendir(dump_dir_name, /*flags:*/ 0); if (!dd) return -1; + + char *analyze_events_as_lines = list_possible_events(dd, NULL, "analyze"); + dd_close(dd); + + if (analyze_events_as_lines && *analyze_events_as_lines) + { + GList *list_analyze_events = str_to_glist(analyze_events_as_lines, '\n'); + free(analyze_events_as_lines); + + char *event = select_event_option(list_analyze_events); + list_free_with_free(list_analyze_events); + + int analyzer_result = run_analyze_event(dump_dir_name, event); + free(event); + + if (analyzer_result != 0) + return 1; + } + + /* Load crash_data from (possibly updated by analyze) dump dir */ + dd = dd_opendir(dump_dir_name, /*flags:*/ 0); + if (!dd) + return -1; + crash_data_t *crash_data = create_crash_data_from_dump_dir(dd); dd_close(dd); + add_to_crash_data_ext(crash_data, CD_DUMPDIR, dump_dir_name, CD_FLAG_TXT + CD_FLAG_ISNOTEDITABLE); -- cgit