[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC PATCH v3 1/8] tracetool: Rewrite infrastructure as
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [RFC PATCH v3 1/8] tracetool: Rewrite infrastructure as python modules |
Date: |
Fri, 30 Mar 2012 08:27:16 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Tue, Mar 27, 2012 at 09:49:18PM +0200, Lluís Vilanova wrote:
> diff --git a/scripts/tracetool.py b/scripts/tracetool.py
> new file mode 100755
> index 0000000..70bf79a
> --- /dev/null
> +++ b/scripts/tracetool.py
> @@ -0,0 +1,110 @@
> +#!/usr/bin/env python
> +# -*- coding: utf-8 -*-
> +
> +"""
> +Command-line wrapper for the tracetool machinery.
> +"""
> +
> +__author__ = "Lluís Vilanova <address@hidden>"
> +__copyright__ = "Copyright 2012, Lluís Vilanova <address@hidden>"
> +__license__ = "GPL version 2 or (at your option) any later version"
> +
> +__maintainer__ = "Stefan Hajnoczi"
> +__email__ = "address@hidden"
> +
> +
> +import sys
> +import getopt
> +
> +from tracetool import error_write, out
> +import tracetool.backend
> +import tracetool.format
> +
> +
> +_SCRIPT = ""
> +
> +def error_opt(msg = None):
> + if msg is not None:
> + error_write("Error: " + msg + "\n")
> +
> + backend_descr = "\n".join([ " %-15s %s" % (n, d)
> + for n,d in tracetool.backend.get_list() ])
> + format_descr = "\n".join([ " %-15s %s" % (n, d)
> + for n,d in tracetool.format.get_list() ])
> + error_write("""\
> +Usage: %(script)s --format=<format> --backend=<backend> [<options>]
> +
> +Backends:
> +%(backends)s
> +
> +Formats:
> +%(formats)s
> +
> +Options:
> + --help This help message.
> + --list-backends Print list of available backends.
> + --check-backend Check if the given backend is valid.
> +""" % {
> + "script" : _SCRIPT,
> + "backends" : backend_descr,
> + "formats" : format_descr,
> + })
> +
> + if msg is None:
> + sys.exit(0)
> + else:
> + sys.exit(1)
> +
> +
> +def main(args):
> + global _SCRIPT
> + _SCRIPT = args[0]
> +
> + long_opts = [ "backend=", "format=", "help", "list-backends",
> "check-backend" ]
> + long_opts += [ "binary=", "target-type=", "target-arch=",
> "probe-prefix=" ]
> +
> + try:
> + opts, args = getopt.getopt(args[1:], "", long_opts)
> + except getopt.GetoptError as err:
> + error_opt(str(err))
> +
> + check_backend = False
> + arg_backend = ""
> + arg_format = ""
> + for opt, arg in opts:
> + if opt == "--help":
> + error_opt()
> +
> + elif opt == "--backend":
> + arg_backend = arg
> + elif opt == "--format":
> + arg_format = arg
> +
> + elif opt == "--list-backends":
> + public_backends = tracetool.backend.get_list(only_public = True)
> + out(", ".join([ b for b,_ in public_backends ]))
> + sys.exit(0)
> + elif opt == "--check-backend":
> + check_backend = True
> +
> + else:
> + error_opt("unhandled option: %s" % opt)
> +
> + if arg_backend is None:
> + error_opt("backend not set")
> +
> + if check_backend:
> + if tracetool.backend.exists(arg_backend):
> + sys.exit(0)
> + else:
> + sys.exit(1)
> +
> + kwargs = {}
> +
> + try:
> + tracetool.generate(sys.stdin, arg_format, arg_backend, **kwargs)
If forgot to ask what kwargs is doing here? Can we default to {}?
Otherwise let's drop it for now since there are no options defined yet.
Stefan
- [Qemu-devel] [RFC PATCH v3 0/8] Rewrite tracetool using python modules, Lluís Vilanova, 2012/03/27
- [Qemu-devel] [RFC PATCH v3 1/8] tracetool: Rewrite infrastructure as python modules, Lluís Vilanova, 2012/03/27
- Re: [Qemu-devel] [RFC PATCH v3 1/8] tracetool: Rewrite infrastructure as python modules,
Stefan Hajnoczi <=
- [Qemu-devel] [RFC PATCH v3 2/8] tracetool: Add module for the 'c' format, Lluís Vilanova, 2012/03/27
- [Qemu-devel] [RFC PATCH v3 3/8] tracetool: Add module for the 'h' format, Lluís Vilanova, 2012/03/27
- [Qemu-devel] [RFC PATCH v3 4/8] tracetool: Add support for the 'stderr' backend, Lluís Vilanova, 2012/03/27
- [Qemu-devel] [RFC PATCH v3 5/8] tracetool: Add support for the 'simple' backend, Lluís Vilanova, 2012/03/27
- [Qemu-devel] [RFC PATCH v3 6/8] tracetool: Add support for the 'ust' backend, Lluís Vilanova, 2012/03/27
- [Qemu-devel] [RFC PATCH v3 7/8] tracetool: Add support for the 'dtrace' backend, Lluís Vilanova, 2012/03/27
- [Qemu-devel] [RFC PATCH v3 8/8] tracetool: Add MAINTAINERS info, Lluís Vilanova, 2012/03/27
- Re: [Qemu-devel] [RFC PATCH v3 0/8] Rewrite tracetool using python modules, Stefan Hajnoczi, 2012/03/29