diff mbox

[RFC,12/19] qapi: Turn generators' mandatory option -i into an argument

Message ID 1427995743-7865-13-git-send-email-armbru@redhat.com
State New
Headers show

Commit Message

Markus Armbruster April 2, 2015, 5:28 p.m. UTC
Mandatory option is silly, and the error handling is missing: the
programs crash when -i isn't supplied.  Make it an argument, and check
it properly.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 Makefile        | 14 +++++++-------
 scripts/qapi.py | 10 ++++------
 tests/Makefile  |  8 ++++----
 3 files changed, 15 insertions(+), 17 deletions(-)

Comments

Eric Blake April 13, 2015, 7:17 p.m. UTC | #1
On 04/02/2015 11:28 AM, Markus Armbruster wrote:
> Mandatory option is silly, and the error handling is missing: the
> programs crash when -i isn't supplied.  Make it an argument, and check
> it properly.
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>  Makefile        | 14 +++++++-------
>  scripts/qapi.py | 10 ++++------
>  tests/Makefile  |  8 ++++----
>  3 files changed, 15 insertions(+), 17 deletions(-)

Needs corresponding changes to docs/qapi-code-gen.txt (several examples
use --input-file=...).


> @@ -935,8 +932,9 @@ def parse_command_line(extra_options = "", extra_long_options = []):
>          do_c = True
>          do_h = True
>  
> -    if len(args) != 0:
> +    if len(args) != 1:
>          print >>sys.stderr, "%s: too many arguments"% sys.argv[0]
>          sys.exit(1)

Won't this report 'too many arguments' even for a missing argument?
Markus Armbruster April 29, 2015, 7:11 a.m. UTC | #2
Eric Blake <eblake@redhat.com> writes:

> On 04/02/2015 11:28 AM, Markus Armbruster wrote:
>> Mandatory option is silly, and the error handling is missing: the
>> programs crash when -i isn't supplied.  Make it an argument, and check
>> it properly.
>> 
>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>> ---
>>  Makefile        | 14 +++++++-------
>>  scripts/qapi.py | 10 ++++------
>>  tests/Makefile  |  8 ++++----
>>  3 files changed, 15 insertions(+), 17 deletions(-)
>
> Needs corresponding changes to docs/qapi-code-gen.txt (several examples
> use --input-file=...).

Indeed.

>> @@ -935,8 +932,9 @@ def parse_command_line(extra_options = "",
>> extra_long_options = []):
>>          do_c = True
>>          do_h = True
>>  
>> -    if len(args) != 0:
>> +    if len(args) != 1:
>>          print >>sys.stderr, "%s: too many arguments"% sys.argv[0]
>>          sys.exit(1)
>
> Won't this report 'too many arguments' even for a missing argument?

Will fix.  Thanks!
diff mbox

Patch

diff --git a/Makefile b/Makefile
index 0a5bc09..1e26f4d 100644
--- a/Makefile
+++ b/Makefile
@@ -243,17 +243,17 @@  qapi-py = $(SRC_PATH)/scripts/qapi.py $(SRC_PATH)/scripts/ordereddict.py
 qga/qapi-generated/qga-qapi-types.c qga/qapi-generated/qga-qapi-types.h :\
 $(SRC_PATH)/qga/qapi-schema.json $(SRC_PATH)/scripts/qapi-types.py $(qapi-py)
 	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-types.py \
-		$(gen-out-type) -o qga/qapi-generated -p "qga-" -i $<, \
+		$(gen-out-type) -o qga/qapi-generated -p "qga-" $<, \
 		"  GEN   $@")
 qga/qapi-generated/qga-qapi-visit.c qga/qapi-generated/qga-qapi-visit.h :\
 $(SRC_PATH)/qga/qapi-schema.json $(SRC_PATH)/scripts/qapi-visit.py $(qapi-py)
 	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-visit.py \
-		$(gen-out-type) -o qga/qapi-generated -p "qga-" -i $<, \
+		$(gen-out-type) -o qga/qapi-generated -p "qga-" $<, \
 		"  GEN   $@")
 qga/qapi-generated/qga-qmp-commands.h qga/qapi-generated/qga-qmp-marshal.c :\
 $(SRC_PATH)/qga/qapi-schema.json $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py)
 	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-commands.py \
-		$(gen-out-type) -o qga/qapi-generated -p "qga-" -i $<, \
+		$(gen-out-type) -o qga/qapi-generated -p "qga-" $<, \
 		"  GEN   $@")
 
 qapi-modules = $(SRC_PATH)/qapi-schema.json $(SRC_PATH)/qapi/common.json \
@@ -263,22 +263,22 @@  qapi-modules = $(SRC_PATH)/qapi-schema.json $(SRC_PATH)/qapi/common.json \
 qapi-types.c qapi-types.h :\
 $(qapi-modules) $(SRC_PATH)/scripts/qapi-types.py $(qapi-py)
 	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-types.py \
-		$(gen-out-type) -o "." -b -i $<, \
+		$(gen-out-type) -o "." -b $<, \
 		"  GEN   $@")
 qapi-visit.c qapi-visit.h :\
 $(qapi-modules) $(SRC_PATH)/scripts/qapi-visit.py $(qapi-py)
 	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-visit.py \
-		$(gen-out-type) -o "." -b -i $<, \
+		$(gen-out-type) -o "." -b $<, \
 		"  GEN   $@")
 qapi-event.c qapi-event.h :\
 $(qapi-modules) $(SRC_PATH)/scripts/qapi-event.py $(qapi-py)
 	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-event.py \
-		$(gen-out-type) -o "." -i $<, \
+		$(gen-out-type) -o "." $<, \
 		"  GEN   $@")
 qmp-commands.h qmp-marshal.c :\
 $(qapi-modules) $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py)
 	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-commands.py \
-		$(gen-out-type) -o "." -m -i $<, \
+		$(gen-out-type) -o "." -m $<, \
 		"  GEN   $@")
 
 QGALIB_GEN=$(addprefix qga/qapi-generated/, qga-qapi-types.h qga-qapi-visit.h qga-qmp-commands.h)
diff --git a/scripts/qapi.py b/scripts/qapi.py
index c952c26..189c9cd 100644
--- a/scripts/qapi.py
+++ b/scripts/qapi.py
@@ -902,10 +902,9 @@  def parse_command_line(extra_options = "", extra_long_options = []):
 
     try:
         opts, args = getopt.gnu_getopt(sys.argv[1:],
-                                       "chp:i:o:" + extra_options,
+                                       "chp:o:" + extra_options,
                                        ["source", "header", "prefix=",
-                                        "input-file=", "output-dir="]
-                                       + extra_long_options)
+                                        "output-dir="] + extra_long_options)
     except getopt.GetoptError, err:
         print >>sys.stderr, "%s: %s" % (sys.argv[0], str(err))
         sys.exit(1)
@@ -920,8 +919,6 @@  def parse_command_line(extra_options = "", extra_long_options = []):
         o, a = oa
         if o in ("-p", "--prefix"):
             prefix = a
-        elif o in ("-i", "--input-file"):
-            input_file = a
         elif o in ("-o", "--output-dir"):
             output_dir = a + "/"
         elif o in ("-c", "--source"):
@@ -935,8 +932,9 @@  def parse_command_line(extra_options = "", extra_long_options = []):
         do_c = True
         do_h = True
 
-    if len(args) != 0:
+    if len(args) != 1:
         print >>sys.stderr, "%s: too many arguments"% sys.argv[0]
         sys.exit(1)
+    input_file = args[0]
 
     return (input_file, output_dir, do_c, do_h, prefix, extra_opts)
diff --git a/tests/Makefile b/tests/Makefile
index 64113a9..597919c 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -297,22 +297,22 @@  tests/test-vmstate$(EXESUF): tests/test-vmstate.o \
 tests/test-qapi-types.c tests/test-qapi-types.h :\
 $(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-types.py $(qapi-py)
 	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-types.py \
-		$(gen-out-type) -o tests -p "test-" -i $<, \
+		$(gen-out-type) -o tests -p "test-" $<, \
 		"  GEN   $@")
 tests/test-qapi-visit.c tests/test-qapi-visit.h :\
 $(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-visit.py $(qapi-py)
 	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-visit.py \
-		$(gen-out-type) -o tests -p "test-" -i $<, \
+		$(gen-out-type) -o tests -p "test-" $<, \
 		"  GEN   $@")
 tests/test-qmp-commands.h tests/test-qmp-marshal.c :\
 $(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py)
 	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-commands.py \
-		$(gen-out-type) -o tests -p "test-" -i $<, \
+		$(gen-out-type) -o tests -p "test-" $<, \
 		"  GEN   $@")
 tests/test-qapi-event.c tests/test-qapi-event.h :\
 $(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-event.py $(qapi-py)
 	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-event.py \
-		$(gen-out-type) -o tests -p "test-" -i $<, \
+		$(gen-out-type) -o tests -p "test-" $<, \
 		"  GEN   $@")
 
 tests/test-string-output-visitor$(EXESUF): tests/test-string-output-visitor.o $(test-qapi-obj-y) libqemuutil.a libqemustub.a