List supported devices, modules, decoders via --list-supported.
authorUwe Hermann <uwe@hermann-uwe.de>
Sat, 3 Jun 2017 15:03:44 +0000 (17:03 +0200)
committerUwe Hermann <uwe@hermann-uwe.de>
Sat, 3 Jun 2017 15:03:44 +0000 (17:03 +0200)
Move this data from -V to -L|--list-supported for usability reasons.

This fixes bug #604.

doc/sigrok-cli.1
main.c
options.c
show.c
sigrok-cli.h

index 545b4d5677bd5fbf55a927b45a03b160c1dc998e..1666f895b6eff284d6df8a322f9d4c01f9677b5f 100644 (file)
@@ -22,7 +22,10 @@ Show a help text and exit.
 .B "\-V, \-\-version"
 Show
 .B sigrok-cli
-version, and information about supported hardware drivers, input file
+version and the versions of libraries used.
+.TP
+.B "\-L, \-\-list-supported"
+Show information about supported hardware drivers, input file
 formats, output file formats, and protocol decoders.
 .TP
 \fB\-d, \-\-driver\fP <drivername>
diff --git a/main.c b/main.c
index 94f1c0f6491c25159573b73259fb59a4c7b2734f..e4d321b51b0d8faa1a818ffae36586db2f9675c3 100644 (file)
--- a/main.c
+++ b/main.c
@@ -241,6 +241,8 @@ int main(int argc, char **argv)
 
        if (opt_version)
                show_version();
+       else if (opt_list_supported)
+               show_supported();
        else if (opt_input_format && opt_show)
                show_input();
        else if (opt_output_format && opt_show)
index 9c8dc8cd04fa6fd674d9ca1460e6eefcf2e119a2..ca16e4c18a386f88981379b8853474d2aad93361 100644 (file)
--- a/options.c
+++ b/options.c
@@ -22,6 +22,7 @@
 #include "sigrok-cli.h"
 
 gboolean opt_version = FALSE;
+gboolean opt_list_supported = FALSE;
 gint opt_loglevel = SR_LOG_WARN; /* Show errors+warnings by default. */
 gboolean opt_scan_devs = FALSE;
 gboolean opt_wait_trigger = FALSE;
@@ -97,7 +98,9 @@ static gchar **output_file_array = NULL;
 
 static const GOptionEntry optargs[] = {
        {"version", 'V', 0, G_OPTION_ARG_NONE, &opt_version,
-                       "Show version and support list", NULL},
+                       "Show version", NULL},
+       {"list-supported", 'L', 0, G_OPTION_ARG_NONE, &opt_list_supported,
+                       "List supported devices/modules/decoders", NULL},
        {"loglevel", 'l', 0, G_OPTION_ARG_INT, &opt_loglevel,
                        "Set loglevel (5 is most verbose)", NULL},
        {"driver", 'd', 0, G_OPTION_ARG_CALLBACK, &check_opt_drv,
diff --git a/show.c b/show.c
index 62a1ac44cafdc2243f8c4663944733d23ff4c303..1c5aad09f47760e4d6752a5236311da58926b374 100644 (file)
--- a/show.c
+++ b/show.c
@@ -57,6 +57,18 @@ static gint sort_pds(gconstpointer a, gconstpointer b)
 #endif
 
 void show_version(void)
+{
+       printf("sigrok-cli %s\n\n", SC_PACKAGE_VERSION_STRING);
+
+       printf("Using libsigrok %s (lib version %s).\n",
+              sr_package_version_string_get(), sr_lib_version_string_get());
+#ifdef HAVE_SRD
+       printf("Using libsigrokdecode %s (lib version %s).\n\n",
+              srd_package_version_string_get(), srd_lib_version_string_get());
+#endif
+}
+
+void show_supported(void)
 {
        struct sr_dev_driver **drivers, *driver;
        const struct sr_input_module **inputs, *input;
@@ -69,15 +81,6 @@ void show_version(void)
        struct srd_decoder *dec;
 #endif
 
-       printf("sigrok-cli %s\n\n", SC_PACKAGE_VERSION_STRING);
-
-       printf("Using libsigrok %s (lib version %s).\n",
-              sr_package_version_string_get(), sr_lib_version_string_get());
-#ifdef HAVE_SRD
-       printf("Using libsigrokdecode %s (lib version %s).\n\n",
-              srd_package_version_string_get(), srd_lib_version_string_get());
-#endif
-
        printf("Supported hardware drivers:\n");
        drivers = sr_driver_list(sr_ctx);
        for (sl = NULL, i = 0; drivers[i]; i++)
index d0b5872ae88984f4b4ced8faa99b0a55ccd985b6..96d8128ea93493d1a048d8aed1ccaef38c74eb70 100644 (file)
@@ -48,6 +48,7 @@ int maybe_config_list(struct sr_dev_driver *driver,
 
 /* show.c */
 void show_version(void);
+void show_supported(void);
 void show_dev_list(void);
 void show_dev_detail(void);
 void show_pd_detail(void);
@@ -99,6 +100,7 @@ void clear_anykey(void);
 
 /* options.c */
 extern gboolean opt_version;
+extern gboolean opt_list_supported;
 extern gint opt_loglevel;
 extern gboolean opt_scan_devs;
 extern gboolean opt_wait_trigger;