diff mbox

qemu-help: add category headlines

Message ID 1377175700-16229-1-git-send-email-marcel.a@redhat.com
State New
Headers show

Commit Message

Marcel Apfelbaum Aug. 22, 2013, 12:48 p.m. UTC
This patch follows Markus Armbruster suggestion:

A possibly better way to group help by category: instead of adding
categories to each line, add category headlines, like this:

    Controller/Bridge/Hub devices:
    name "NAME", bus "BUS"...
    ...
    USB devices:
    name "NAME", bus "BUS"...
    ...
    Storage devices:
    ...

This way, showing devices with multiple categories once per category
actually makes sense.

Note that the "categories to each line" is kept for 2 reasons:
1. Preparation for multifunction devices
2. Ability to grep by category

Signed-off-by: Marcel Apfelbaum <marcel.a@redhat.com>
---
 qdev-monitor.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Andreas Färber Aug. 22, 2013, 2 p.m. UTC | #1
Am 22.08.2013 14:48, schrieb Marcel Apfelbaum:
> This patch follows Markus Armbruster suggestion:
> 
> A possibly better way to group help by category: instead of adding
> categories to each line, add category headlines, like this:
> 
>     Controller/Bridge/Hub devices:
>     name "NAME", bus "BUS"...
>     ...
>     USB devices:
>     name "NAME", bus "BUS"...
>     ...
>     Storage devices:
>     ...
> 
> This way, showing devices with multiple categories once per category
> actually makes sense.
> 
> Note that the "categories to each line" is kept for 2 reasons:
> 1. Preparation for multifunction devices
> 2. Ability to grep by category
> 
> Signed-off-by: Marcel Apfelbaum <marcel.a@redhat.com>
> ---
>  qdev-monitor.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/qdev-monitor.c b/qdev-monitor.c
> index 410cdcb..a7329b0 100644
> --- a/qdev-monitor.c
> +++ b/qdev-monitor.c
> @@ -156,6 +156,8 @@ static void qdev_print_category_devices(DeviceCategory category)
>      DeviceClass *dc;
>      GSList *list, *curr;
>  
> +    error_printf("%s devices:\n", qdev_category_get_name(category));

Why is that an error? Shouldn't it go to stdout?

Andreas

> +
>      list = object_class_get_list(TYPE_DEVICE, false);
>      for (curr = list; curr; curr = g_slist_next(curr)) {
>          dc = (DeviceClass *)object_class_dynamic_cast(curr->data, TYPE_DEVICE);
>
Markus Armbruster Aug. 22, 2013, 2:13 p.m. UTC | #2
Andreas Färber <afaerber@suse.de> writes:

> Am 22.08.2013 14:48, schrieb Marcel Apfelbaum:
>> This patch follows Markus Armbruster suggestion:
>> 
>> A possibly better way to group help by category: instead of adding
>> categories to each line, add category headlines, like this:
>> 
>>     Controller/Bridge/Hub devices:
>>     name "NAME", bus "BUS"...
>>     ...
>>     USB devices:
>>     name "NAME", bus "BUS"...
>>     ...
>>     Storage devices:
>>     ...
>> 
>> This way, showing devices with multiple categories once per category
>> actually makes sense.
>> 
>> Note that the "categories to each line" is kept for 2 reasons:
>> 1. Preparation for multifunction devices
>> 2. Ability to grep by category
>> 
>> Signed-off-by: Marcel Apfelbaum <marcel.a@redhat.com>
>> ---
>>  qdev-monitor.c | 2 ++
>>  1 file changed, 2 insertions(+)
>> 
>> diff --git a/qdev-monitor.c b/qdev-monitor.c
>> index 410cdcb..a7329b0 100644
>> --- a/qdev-monitor.c
>> +++ b/qdev-monitor.c
>> @@ -156,6 +156,8 @@ static void qdev_print_category_devices(DeviceCategory category)
>>      DeviceClass *dc;
>>      GSList *list, *curr;
>>  
>> +    error_printf("%s devices:\n", qdev_category_get_name(category));
>
> Why is that an error? Shouldn't it go to stdout?

Output of -device help has always gone to stderr, and that has always
annoyed me.  Just not enough to fix it.

[...]
Eric Blake Aug. 22, 2013, 3:34 p.m. UTC | #3
On 08/22/2013 08:13 AM, Markus Armbruster wrote:

>>> +++ b/qdev-monitor.c
>>> @@ -156,6 +156,8 @@ static void qdev_print_category_devices(DeviceCategory category)
>>>      DeviceClass *dc;
>>>      GSList *list, *curr;
>>>  
>>> +    error_printf("%s devices:\n", qdev_category_get_name(category));
>>
>> Why is that an error? Shouldn't it go to stdout?
> 
> Output of -device help has always gone to stderr, and that has always
> annoyed me.  Just not enough to fix it.

Back when libvirt scraped -help output, changing it to use stdout would
be an incompatible change.  But now that libvirt uses QMP, I would also
welcome a change to use stdout (but also fall in the category of "not
enough of a bother for ME to fix it).
Marcel Apfelbaum Aug. 22, 2013, 5:18 p.m. UTC | #4
On Thu, 2013-08-22 at 09:34 -0600, Eric Blake wrote:
> On 08/22/2013 08:13 AM, Markus Armbruster wrote:
> 
> >>> +++ b/qdev-monitor.c
> >>> @@ -156,6 +156,8 @@ static void qdev_print_category_devices(DeviceCategory category)
> >>>      DeviceClass *dc;
> >>>      GSList *list, *curr;
> >>>  
> >>> +    error_printf("%s devices:\n", qdev_category_get_name(category));
> >>
> >> Why is that an error? Shouldn't it go to stdout?
> > 
> > Output of -device help has always gone to stderr, and that has always
> > annoyed me.  Just not enough to fix it.
> 
> Back when libvirt scraped -help output, changing it to use stdout would
> be an incompatible change.  But now that libvirt uses QMP, I would also
> welcome a change to use stdout (but also fall in the category of "not
> enough of a bother for ME to fix it).
It really bothers me. I need to use the help (being new to qemu ...)
and I am always forgetting "2>&1".

Anyone can think of a reason for not sending the help to stdout?   
Marcel

>
Markus Armbruster Aug. 22, 2013, 5:47 p.m. UTC | #5
Marcel Apfelbaum <marcel.a@redhat.com> writes:

> On Thu, 2013-08-22 at 09:34 -0600, Eric Blake wrote:
>> On 08/22/2013 08:13 AM, Markus Armbruster wrote:
>> 
>> >>> +++ b/qdev-monitor.c
>> >>> @@ -156,6 +156,8 @@ static void
>> >>> qdev_print_category_devices(DeviceCategory category)
>> >>>      DeviceClass *dc;
>> >>>      GSList *list, *curr;
>> >>>  
>> >>> +    error_printf("%s devices:\n", qdev_category_get_name(category));
>> >>
>> >> Why is that an error? Shouldn't it go to stdout?
>> > 
>> > Output of -device help has always gone to stderr, and that has always
>> > annoyed me.  Just not enough to fix it.
>> 
>> Back when libvirt scraped -help output, changing it to use stdout would
>> be an incompatible change.  But now that libvirt uses QMP, I would also
>> welcome a change to use stdout (but also fall in the category of "not
>> enough of a bother for ME to fix it).
> It really bothers me. I need to use the help (being new to qemu ...)
> and I am always forgetting "2>&1".
>
> Anyone can think of a reason for not sending the help to stdout?   

Post a patch and find out ;)
Marcel Apfelbaum Aug. 28, 2013, 8:10 a.m. UTC | #6
On Thu, 2013-08-22 at 15:48 +0300, Marcel Apfelbaum wrote:
> This patch follows Markus Armbruster suggestion:
> 
> A possibly better way to group help by category: instead of adding
> categories to each line, add category headlines, like this:
> 
>     Controller/Bridge/Hub devices:
>     name "NAME", bus "BUS"...
>     ...
>     USB devices:
>     name "NAME", bus "BUS"...
>     ...
>     Storage devices:
>     ...
> 
> This way, showing devices with multiple categories once per category
> actually makes sense.
> 
> Note that the "categories to each line" is kept for 2 reasons:
> 1. Preparation for multifunction devices
> 2. Ability to grep by category
ping
Marcel

> 
> Signed-off-by: Marcel Apfelbaum <marcel.a@redhat.com>
> ---
>  qdev-monitor.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/qdev-monitor.c b/qdev-monitor.c
> index 410cdcb..a7329b0 100644
> --- a/qdev-monitor.c
> +++ b/qdev-monitor.c
> @@ -156,6 +156,8 @@ static void qdev_print_category_devices(DeviceCategory category)
>      DeviceClass *dc;
>      GSList *list, *curr;
>  
> +    error_printf("%s devices:\n", qdev_category_get_name(category));
> +
>      list = object_class_get_list(TYPE_DEVICE, false);
>      for (curr = list; curr; curr = g_slist_next(curr)) {
>          dc = (DeviceClass *)object_class_dynamic_cast(curr->data, TYPE_DEVICE);
diff mbox

Patch

diff --git a/qdev-monitor.c b/qdev-monitor.c
index 410cdcb..a7329b0 100644
--- a/qdev-monitor.c
+++ b/qdev-monitor.c
@@ -156,6 +156,8 @@  static void qdev_print_category_devices(DeviceCategory category)
     DeviceClass *dc;
     GSList *list, *curr;
 
+    error_printf("%s devices:\n", qdev_category_get_name(category));
+
     list = object_class_get_list(TYPE_DEVICE, false);
     for (curr = list; curr; curr = g_slist_next(curr)) {
         dc = (DeviceClass *)object_class_dynamic_cast(curr->data, TYPE_DEVICE);