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

Christophe Fergeau cfergeau at redhat.com
Thu Mar 7 15:16:18 UTC 2019


Acked-by: Christophe Fergeau <cfergeau at redhat.com>

On Sun, Mar 03, 2019 at 07:10:23PM +0000, Frediano Ziglio wrote:
> 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
> 
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/spice-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20190307/535e13ac/attachment.sig>


More information about the Spice-devel mailing list