xref: /qemu/scripts/cleanup-trace-events.pl (revision 72ac97cd)
1#!/usr/bin/perl
2# Copyright (C) 2013 Red Hat, Inc.
3#
4# Authors:
5#  Markus Armbruster <armbru@redhat.com>
6#
7# This work is licensed under the terms of the GNU GPL, version 2 or
8# later.  See the COPYING file in the top-level directory.
9
10# Usage: cleanup-trace-events.pl trace-events
11#
12# Print cleaned up trace-events to standard output.
13
14use warnings;
15use strict;
16
17my $buf = '';
18my %seen = ();
19
20sub out {
21    print $buf;
22    $buf = '';
23    %seen = ();
24}
25
26while (<>) {
27    if (/^(disable )?([a-z_0-9]+)\(/) {
28        open GREP, '-|', 'git', 'grep', '-l', "trace_$2"
29            or die "run git grep: $!";
30        my $fname;
31        while ($fname = <GREP>) {
32            chomp $fname;
33            next if $seen{$fname} || $fname eq 'trace-events';
34            $seen{$fname} = 1;
35            $buf = "# $fname\n" . $buf;
36        }
37        unless (close GREP) {
38            die "close git grep: $!"
39                if $!;
40            next;
41        }
42    } elsif (/^# ([^ ]*\.[ch])$/) {
43        out;
44        next;
45    } elsif (!/^#|^$/) {
46        warn "unintelligible line";
47    }
48    $buf .= $_;
49}
50
51out;
52