From: Stefan Hajnoczi <stefanha@gmail.com>
To: "Lluís Vilanova" <vilanova@ac.upc.edu>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [RFC PATCH v3 1/8] tracetool: Rewrite infrastructure as python modules
Date: Fri, 30 Mar 2012 08:27:16 +0100 [thread overview]
Message-ID: <20120330072716.GA16437@stefanha-thinkpad.localdomain> (raw)
In-Reply-To: <20120327194918.7241.10931.stgit@ginnungagap.bsc.es>
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 <vilanova@ac.upc.edu>"
> +__copyright__ = "Copyright 2012, Lluís Vilanova <vilanova@ac.upc.edu>"
> +__license__ = "GPL version 2 or (at your option) any later version"
> +
> +__maintainer__ = "Stefan Hajnoczi"
> +__email__ = "stefanha@linux.vnet.ibm.com"
> +
> +
> +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
next prev parent reply other threads:[~2012-03-30 8:20 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-27 19:49 [Qemu-devel] [RFC PATCH v3 0/8] Rewrite tracetool using python modules Lluís Vilanova
2012-03-27 19:49 ` [Qemu-devel] [RFC PATCH v3 1/8] tracetool: Rewrite infrastructure as " Lluís Vilanova
2012-03-30 7:27 ` Stefan Hajnoczi [this message]
2012-03-30 16:55 ` Lluís Vilanova
2012-04-02 7:36 ` Stefan Hajnoczi
2012-04-02 12:57 ` Lluís Vilanova
2012-03-27 19:49 ` [Qemu-devel] [RFC PATCH v3 2/8] tracetool: Add module for the 'c' format Lluís Vilanova
2012-03-27 19:49 ` [Qemu-devel] [RFC PATCH v3 3/8] tracetool: Add module for the 'h' format Lluís Vilanova
2012-03-27 19:49 ` [Qemu-devel] [RFC PATCH v3 4/8] tracetool: Add support for the 'stderr' backend Lluís Vilanova
2012-03-27 19:49 ` [Qemu-devel] [RFC PATCH v3 5/8] tracetool: Add support for the 'simple' backend Lluís Vilanova
2012-03-27 19:49 ` [Qemu-devel] [RFC PATCH v3 6/8] tracetool: Add support for the 'ust' backend Lluís Vilanova
2012-03-27 19:49 ` [Qemu-devel] [RFC PATCH v3 7/8] tracetool: Add support for the 'dtrace' backend Lluís Vilanova
2012-03-27 19:49 ` [Qemu-devel] [RFC PATCH v3 8/8] tracetool: Add MAINTAINERS info Lluís Vilanova
2012-03-29 17:16 ` [Qemu-devel] [RFC PATCH v3 0/8] Rewrite tracetool using python modules Stefan Hajnoczi
2012-03-30 17:12 ` Lluís Vilanova
2012-04-02 7:39 ` Stefan Hajnoczi
2012-04-02 12:52 ` Lluís Vilanova
2012-04-02 13:16 ` Stefan Hajnoczi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120330072716.GA16437@stefanha-thinkpad.localdomain \
--to=stefanha@gmail.com \
--cc=qemu-devel@nongnu.org \
--cc=vilanova@ac.upc.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).