From 16d80f61814745bd3f5bb9f47ae3b00edf9e1e45 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Thu, 2 Apr 2015 13:32:16 +0200 Subject: [PATCH] qapi: Turn generators' mandatory option -i into an argument 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 Reviewed-by: Eric Blake --- Makefile | 14 +++++++------- docs/qapi-code-gen.txt | 10 +++++----- scripts/qapi.py | 12 +++++------- tests/Makefile | 8 ++++---- 4 files changed, 21 insertions(+), 23 deletions(-) diff --git a/Makefile b/Makefile index bfa5dab4cd..d94580404c 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/docs/qapi-code-gen.txt b/docs/qapi-code-gen.txt index 269a1f3d27..3f0522ea0f 100644 --- a/docs/qapi-code-gen.txt +++ b/docs/qapi-code-gen.txt @@ -536,7 +536,7 @@ created code. Example: $ python scripts/qapi-types.py --output-dir="qapi-generated" \ - --prefix="example-" --input-file=example-schema.json + --prefix="example-" example-schema.json $ cat qapi-generated/example-qapi-types.c [Uninteresting stuff omitted...] @@ -623,7 +623,7 @@ $(prefix)qapi-visit.h: declarations for previously mentioned visitor Example: $ python scripts/qapi-visit.py --output-dir="qapi-generated" - --prefix="example-" --input-file=example-schema.json + --prefix="example-" example-schema.json $ cat qapi-generated/example-qapi-visit.c [Uninteresting stuff omitted...] @@ -681,7 +681,7 @@ Example: error_propagate(errp, err); } $ python scripts/qapi-commands.py --output-dir="qapi-generated" \ - --prefix="example-" --input-file=example-schema.json + --prefix="example-" example-schema.json $ cat qapi-generated/example-qapi-visit.h [Uninteresting stuff omitted...] @@ -715,7 +715,7 @@ $(prefix)qmp-commands.h: Function prototypes for the QMP commands Example: $ python scripts/qapi-commands.py --output-dir="qapi-generated" - --prefix="example-" --input-file=example-schema.json + --prefix="example-" example-schema.json $ cat qapi-generated/example-qmp-marshal.c [Uninteresting stuff omitted...] @@ -806,7 +806,7 @@ $(prefix)qapi-event.c - Implementation of functions to send an event Example: $ python scripts/qapi-event.py --output-dir="qapi-generated" - --prefix="example-" --input-file=example-schema.json + --prefix="example-" example-schema.json $ cat qapi-generated/example-qapi-event.c [Uninteresting stuff omitted...] diff --git a/scripts/qapi.py b/scripts/qapi.py index df6e5aa381..186ec3b39f 100644 --- a/scripts/qapi.py +++ b/scripts/qapi.py @@ -984,10 +984,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) @@ -1002,8 +1001,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"): @@ -1017,8 +1014,9 @@ def parse_command_line(extra_options = "", extra_long_options = []): do_c = True do_h = True - if len(args) != 0: - print >>sys.stderr, "%s: too many arguments" % sys.argv[0] + if len(args) != 1: + print >>sys.stderr, "%s: need exactly one argument" % 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 6d2f2e5b9a..729b9694cf 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -303,22 +303,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