[Spice-devel] [PATCH spice-common 2/6] codegen: Factor out a function to write output file

Frediano Ziglio fziglio at redhat.com
Thu Feb 21 10:38:03 UTC 2019


This will be reused to generate C declaration automatically.

Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
---
 spice_codegen.py | 46 +++++++++++++++++++++++++---------------------
 1 file changed, 25 insertions(+), 21 deletions(-)

diff --git a/spice_codegen.py b/spice_codegen.py
index 76d7c5e..7e22092 100755
--- a/spice_codegen.py
+++ b/spice_codegen.py
@@ -105,6 +105,30 @@ def write_enums(writer, describe=False):
 
     writer.writeln("#endif /* _H_SPICE_ENUMS */")
 
+def write_content(dest_file, content, keep_identical_file):
+    if keep_identical_file:
+        try:
+            f = open(dest_file, 'rb')
+            old_content = f.read()
+            f.close()
+
+            if content == old_content:
+                six.print_("No changes to %s" % dest_file)
+                return
+
+        except IOError:
+            pass
+
+    f = open(dest_file, 'wb')
+    if six.PY3:
+        f.write(bytes(content, 'UTF-8'))
+    else:
+        f.write(content)
+    f.close()
+
+    six.print_("Wrote %s" % dest_file)
+
+
 parser = OptionParser(usage="usage: %prog [options] <protocol_file> <destination file>")
 parser.add_option("-e", "--generate-enums",
                   action="store_true", dest="generate_enums", default=False,
@@ -290,25 +314,5 @@ if options.header:
     content = writer.header.getvalue()
 else:
     content = writer.getvalue()
-if options.keep_identical_file:
-    try:
-        f = open(dest_file, 'rb')
-        old_content = f.read()
-        f.close()
-
-        if content == old_content:
-            six.print_("No changes to %s" % dest_file)
-            sys.exit(0)
-
-    except IOError:
-        pass
-
-f = open(dest_file, 'wb')
-if six.PY3:
-    f.write(bytes(content, 'UTF-8'))
-else:
-    f.write(content)
-f.close()
-
-six.print_("Wrote %s" % dest_file)
+write_content(dest_file, content, options.keep_identical_file)
 sys.exit(0)
-- 
2.20.1



More information about the Spice-devel mailing list