Jiri f00c7c
From 383a8c804e0a492e8261309bbd0e9d3502ec6604 Mon Sep 17 00:00:00 2001
Jiri f00c7c
From: Denys Vlasenko <dvlasenk@redhat.com>
Jiri f00c7c
Date: Wed, 7 Dec 2011 23:14:46 +0100
Jiri f00c7c
Subject: [PATCH 8/8] abrt-cli: add man page. Closes rhbz#747624
Jiri f00c7c
Jiri f00c7c
This also regularizes help text a bit, and trims code
Jiri f00c7c
by about 150 bytes
Jiri f00c7c
Jiri f00c7c
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Jiri f00c7c
---
Jiri f00c7c
 abrt.spec.in       |    3 +--
Jiri f00c7c
 doc/Makefile.am    |    1 +
Jiri f00c7c
 doc/abrt-cli.txt   |   31 +++++++++++++++++++++++++++++++
Jiri f00c7c
 src/cli/abrt-cli.c |   10 +++++-----
Jiri f00c7c
 src/cli/list.c     |   19 ++++++++++---------
Jiri f00c7c
 src/cli/report.c   |   16 +++++++---------
Jiri f00c7c
 src/cli/rm.c       |   10 +++++++---
Jiri f00c7c
 7 files changed, 62 insertions(+), 28 deletions(-)
Jiri f00c7c
 create mode 100644 doc/abrt-cli.txt
Jiri f00c7c
Jiri f00c7c
diff --git a/abrt.spec.in b/abrt.spec.in
Jiri f00c7c
index a5e78a1..7847ac0 100644
Jiri f00c7c
--- a/abrt.spec.in
Jiri f00c7c
+++ b/abrt.spec.in
Jiri f00c7c
@@ -497,8 +497,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
Jiri f00c7c
 %files cli
Jiri f00c7c
 %defattr(-,root,root,-)
Jiri f00c7c
 %{_bindir}/abrt-cli
Jiri f00c7c
-# provide asap
Jiri f00c7c
-#% {_mandir}/man1/report-cli.1.gz
Jiri f00c7c
+%{_mandir}/man1/abrt-cli.1.gz
Jiri f00c7c
 
Jiri f00c7c
 %files desktop
Jiri f00c7c
 %defattr(-,root,root,-)
Jiri f00c7c
diff --git a/doc/Makefile.am b/doc/Makefile.am
Jiri f00c7c
index 65a8142..5025f93 100644
Jiri f00c7c
--- a/doc/Makefile.am
Jiri f00c7c
+++ b/doc/Makefile.am
Jiri f00c7c
@@ -11,6 +11,7 @@ MAN1_TXT += abrt-action-list-dsos.txt
Jiri f00c7c
 MAN1_TXT += abrt-retrace-client.txt
Jiri f00c7c
 MAN1_TXT += abrt-handle-upload.txt
Jiri f00c7c
 MAN1_TXT += abrt-server.txt
Jiri f00c7c
+MAN1_TXT += abrt-cli.txt
Jiri f00c7c
 MAN1_TXT += abrt-action-save-package-data.txt
Jiri f00c7c
 MAN1_TXT += abrt-install-ccpp-hook.txt
Jiri f00c7c
 
Jiri f00c7c
diff --git a/doc/abrt-cli.txt b/doc/abrt-cli.txt
Jiri f00c7c
new file mode 100644
Jiri f00c7c
index 0000000..9680ad6
Jiri f00c7c
--- /dev/null
Jiri f00c7c
+++ b/doc/abrt-cli.txt
Jiri f00c7c
@@ -0,0 +1,31 @@
Jiri f00c7c
+abrt-cli(1)
Jiri f00c7c
+===========
Jiri f00c7c
+
Jiri f00c7c
+NAME
Jiri f00c7c
+----
Jiri f00c7c
+abrt-cli - List, remove, print, analyze, report problems
Jiri f00c7c
+
Jiri f00c7c
+SYNOPSIS
Jiri f00c7c
+--------
Jiri f00c7c
+'abrt-cli' list   [-vdf] [DIR]...
Jiri f00c7c
+
Jiri f00c7c
+'abrt-cli' rm     [-v]   DIR...
Jiri f00c7c
+
Jiri f00c7c
+'abrt-cli' report [-v]   DIR...
Jiri f00c7c
+
Jiri f00c7c
+'abrt-cli' info   [-vd]  DIR...
Jiri f00c7c
+
Jiri f00c7c
+OPTIONS
Jiri f00c7c
+-------
Jiri f00c7c
+-v,--verbose::
Jiri f00c7c
+   Be more verbose. Can be given multiple times.
Jiri f00c7c
+
Jiri f00c7c
+-d,--detailed::
Jiri f00c7c
+   Show detailed report
Jiri f00c7c
+
Jiri f00c7c
+-f,--full::
Jiri f00c7c
+   List even reported problems
Jiri f00c7c
+
Jiri f00c7c
+AUTHORS
Jiri f00c7c
+-------
Jiri f00c7c
+* ABRT team
Jiri f00c7c
diff --git a/src/cli/abrt-cli.c b/src/cli/abrt-cli.c
Jiri f00c7c
index 2ea5276..fdd3173 100644
Jiri f00c7c
--- a/src/cli/abrt-cli.c
Jiri f00c7c
+++ b/src/cli/abrt-cli.c
Jiri f00c7c
@@ -138,14 +138,14 @@ int main(int argc, const char **argv)
Jiri f00c7c
     argc--;
Jiri f00c7c
 
Jiri f00c7c
     const char *abrt_cli_usage_string = _(
Jiri f00c7c
-        "Usage: abrt-cli [--version] COMMAND [ARGS]"
Jiri f00c7c
+        "Usage: abrt-cli [--version] COMMAND [DIR]..."
Jiri f00c7c
         );
Jiri f00c7c
 
Jiri f00c7c
     const struct cmd_struct commands[] = {
Jiri f00c7c
-        {"list", cmd_list, _("List not yet reported problems")},
Jiri f00c7c
-        {"rm", cmd_rm, _("Remove files from problem directory")},
Jiri f00c7c
-        {"report", cmd_report, _("Analyze and report problem data in problem directory")},
Jiri f00c7c
-        {"info", cmd_info, _("Print information about DUMP_DIR")},
Jiri f00c7c
+        {"list", cmd_list, _("List not yet reported problems [in DIRs]")},
Jiri f00c7c
+        {"rm", cmd_rm, _("Remove problem directory DIR")},
Jiri f00c7c
+        {"report", cmd_report, _("Analyze and report problem data in DIR")},
Jiri f00c7c
+        {"info", cmd_info, _("Print information about DIR")},
Jiri f00c7c
         {NULL, NULL, NULL}
Jiri f00c7c
     };
Jiri f00c7c
 
Jiri f00c7c
diff --git a/src/cli/list.c b/src/cli/list.c
Jiri f00c7c
index a9b700c..565a36f 100644
Jiri f00c7c
--- a/src/cli/list.c
Jiri f00c7c
+++ b/src/cli/list.c
Jiri f00c7c
@@ -87,7 +87,7 @@ static void print_crash_list(vector_of_problem_data_t *crash_list, int include_r
Jiri f00c7c
 int cmd_list(int argc, const char **argv)
Jiri f00c7c
 {
Jiri f00c7c
     const char *program_usage_string = _(
Jiri f00c7c
-        "& list [options] [<dump-dir>]..."
Jiri f00c7c
+        "& list [options] [DIR]..."
Jiri f00c7c
         );
Jiri f00c7c
 
Jiri f00c7c
     static int opt_full, opt_detailed;
Jiri f00c7c
@@ -101,11 +101,11 @@ int cmd_list(int argc, const char **argv)
Jiri f00c7c
     };
Jiri f00c7c
 
Jiri f00c7c
     parse_opts(argc, (char **)argv, program_options, program_usage_string);
Jiri f00c7c
+    argv += optind;
Jiri f00c7c
 
Jiri f00c7c
     GList *D_list = NULL;
Jiri f00c7c
-    if (optind < argc)
Jiri f00c7c
-        while (optind < argc)
Jiri f00c7c
-            D_list = g_list_append(D_list, xstrdup(argv[optind++]));
Jiri f00c7c
+    while (*argv)
Jiri f00c7c
+        D_list = g_list_append(D_list, xstrdup(*argv++));
Jiri f00c7c
     if (!D_list)
Jiri f00c7c
     {
Jiri f00c7c
         load_abrt_conf();
Jiri f00c7c
@@ -130,7 +130,7 @@ int cmd_list(int argc, const char **argv)
Jiri f00c7c
 int cmd_info(int argc, const char **argv)
Jiri f00c7c
 {
Jiri f00c7c
     const char *program_usage_string = _(
Jiri f00c7c
-        "& info [options] [<dump-dir>]..."
Jiri f00c7c
+        "& info [options] DIR..."
Jiri f00c7c
         );
Jiri f00c7c
 
Jiri f00c7c
     static int opt_detailed;
Jiri f00c7c
@@ -143,14 +143,15 @@ int cmd_info(int argc, const char **argv)
Jiri f00c7c
     };
Jiri f00c7c
 
Jiri f00c7c
     parse_opts(argc, (char **)argv, program_options, program_usage_string);
Jiri f00c7c
+    argv += optind;
Jiri f00c7c
 
Jiri f00c7c
-    if (optind == argc)
Jiri f00c7c
+    if (!argv[0])
Jiri f00c7c
         show_usage_and_die(program_usage_string, program_options);
Jiri f00c7c
 
Jiri f00c7c
     int errs = 0;
Jiri f00c7c
-    while (argv[optind])
Jiri f00c7c
+    while (*argv)
Jiri f00c7c
     {
Jiri f00c7c
-        const char *dump_dir = argv[optind++];
Jiri f00c7c
+        const char *dump_dir = *argv++;
Jiri f00c7c
         problem_data_t *problem = fill_crash_info(dump_dir);
Jiri f00c7c
         if (!problem)
Jiri f00c7c
         {
Jiri f00c7c
@@ -161,7 +162,7 @@ int cmd_info(int argc, const char **argv)
Jiri f00c7c
 
Jiri f00c7c
         print_crash(problem, opt_detailed);
Jiri f00c7c
         free_problem_data(problem);
Jiri f00c7c
-        if (optind - argc)
Jiri f00c7c
+        if (*argv)
Jiri f00c7c
             printf("\n");
Jiri f00c7c
     }
Jiri f00c7c
 
Jiri f00c7c
diff --git a/src/cli/report.c b/src/cli/report.c
Jiri f00c7c
index 1e6c5ce..e20bb96 100644
Jiri f00c7c
--- a/src/cli/report.c
Jiri f00c7c
+++ b/src/cli/report.c
Jiri f00c7c
@@ -25,7 +25,7 @@
Jiri f00c7c
 int cmd_report(int argc, const char **argv)
Jiri f00c7c
 {
Jiri f00c7c
     const char *program_usage_string = _(
Jiri f00c7c
-        "& report [options] [<dump-dir>]..."
Jiri f00c7c
+        "& report [options] DIR..."
Jiri f00c7c
         );
Jiri f00c7c
 
Jiri f00c7c
     struct options program_options[] = {
Jiri f00c7c
@@ -34,6 +34,10 @@ int cmd_report(int argc, const char **argv)
Jiri f00c7c
     };
Jiri f00c7c
 
Jiri f00c7c
     parse_opts(argc, (char **)argv, program_options, program_usage_string);
Jiri f00c7c
+    argv += optind;
Jiri f00c7c
+
Jiri f00c7c
+    if (!argv[0])
Jiri f00c7c
+        show_usage_and_die(program_usage_string, program_options);
Jiri f00c7c
 
Jiri f00c7c
     load_abrt_conf();
Jiri f00c7c
     char *home = getenv("HOME");
Jiri f00c7c
@@ -43,12 +47,9 @@ int cmd_report(int argc, const char **argv)
Jiri f00c7c
     D_list = g_list_append(D_list, xstrdup(g_settings_dump_location));
Jiri f00c7c
     free_abrt_conf_data();
Jiri f00c7c
 
Jiri f00c7c
-    if (!argv[optind])
Jiri f00c7c
-        show_usage_and_die(program_usage_string, program_options);
Jiri f00c7c
-
Jiri f00c7c
-    while (1)
Jiri f00c7c
+    while (*argv)
Jiri f00c7c
     {
Jiri f00c7c
-        const char *dir_name = argv[optind++];
Jiri f00c7c
+        const char *dir_name = *argv++;
Jiri f00c7c
 
Jiri f00c7c
         vector_of_problem_data_t *ci = NULL;
Jiri f00c7c
         if (*dir_name == '@')
Jiri f00c7c
@@ -73,9 +74,6 @@ int cmd_report(int argc, const char **argv)
Jiri f00c7c
         free_vector_of_problem_data(ci);
Jiri f00c7c
         if (status)
Jiri f00c7c
             exit(status);
Jiri f00c7c
-
Jiri f00c7c
-        if (!argv[optind])
Jiri f00c7c
-            break;
Jiri f00c7c
     }
Jiri f00c7c
 
Jiri f00c7c
     return 0;
Jiri f00c7c
diff --git a/src/cli/rm.c b/src/cli/rm.c
Jiri f00c7c
index 4a95d93..8f185a4 100644
Jiri f00c7c
--- a/src/cli/rm.c
Jiri f00c7c
+++ b/src/cli/rm.c
Jiri f00c7c
@@ -28,7 +28,7 @@
Jiri f00c7c
 int cmd_rm(int argc, const char **argv)
Jiri f00c7c
 {
Jiri f00c7c
     const char *program_usage_string = _(
Jiri f00c7c
-        "& rm [options] [<dump-dir>]..."
Jiri f00c7c
+        "& rm [options] DIR..."
Jiri f00c7c
         );
Jiri f00c7c
 
Jiri f00c7c
     struct options program_options[] = {
Jiri f00c7c
@@ -37,12 +37,16 @@ int cmd_rm(int argc, const char **argv)
Jiri f00c7c
     };
Jiri f00c7c
 
Jiri f00c7c
     parse_opts(argc, (char **)argv, program_options, program_usage_string);
Jiri f00c7c
+    argv += optind;
Jiri f00c7c
+
Jiri f00c7c
+    if (!argv[0])
Jiri f00c7c
+        show_usage_and_die(program_usage_string, program_options);
Jiri f00c7c
 
Jiri f00c7c
     int errs = 0;
Jiri f00c7c
-    while (argv[optind])
Jiri f00c7c
+    while (*argv)
Jiri f00c7c
     {
Jiri f00c7c
         int status;
Jiri f00c7c
-        const char *rm_dir = argv[optind++];
Jiri f00c7c
+        const char *rm_dir = *argv++;
Jiri f00c7c
         status = delete_dump_dir_possibly_using_abrtd(rm_dir);
Jiri f00c7c
         if (!status)
Jiri f00c7c
             log("rm '%s'", rm_dir);
Jiri f00c7c
-- 
Jiri f00c7c
1.7.7.3
Jiri f00c7c