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