#!/usr/bin/perl
# Copyright (C) 2013 Red Hat, Inc.
#
# Authors:
#  Markus Armbruster <armbru@redhat.com>
#
# This work is licensed under the terms of the GNU GPL, version 2 or
# later.  See the COPYING file in the top-level directory.

# Usage: cleanup-trace-events.pl trace-events
#
# Print cleaned up trace-events to standard output.

use warnings;
use strict;

my $buf = '';
my %seen = ();

sub out {
    print $buf;
    $buf = '';
    %seen = ();
}

while (<>) {
    if (/^(disable )?([a-z_0-9]+)\(/) {
        open GREP, '-|', 'git', 'grep', '-lw', "trace_$2"
            or die "run git grep: $!";
        my $fname;
        while ($fname = <GREP>) {
            chomp $fname;
            next if $seen{$fname} || $fname eq 'trace-events';
            $seen{$fname} = 1;
            $buf = "# $fname\n" . $buf;
        }
        unless (close GREP) {
            die "close git grep: $!"
                if $!;
            next;
        }
    } elsif (/^# ([^ ]*\.[ch])$/) {
        out;
        next;
    } elsif (!/^#|^$/) {
        warn "unintelligible line";
    }
    $buf .= $_;
}

out;
