[1/5] cleanup-trace-events.pl: New

Submitted by Markus Armbruster on June 7, 2013, 10:59 a.m.

Details

Message ID 1370602761-3566-2-git-send-email-armbru@redhat.com
State New
Headers show

Commit Message

Markus Armbruster June 7, 2013, 10:59 a.m.
Simple script to drop unused events and fix up source file comments.
The next few commits put it to use.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
Feel free to ignore this one, rewrite it in Python, frame it to hang
in your bathroom, print it on tissue paper for that other bathroom
use, whatever you like.

 scripts/cleanup-trace-events.pl | 51 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)
 create mode 100755 scripts/cleanup-trace-events.pl

Patch hide | download patch | download mbox

diff --git a/scripts/cleanup-trace-events.pl b/scripts/cleanup-trace-events.pl
new file mode 100755
index 0000000..cffbf16
--- /dev/null
+++ b/scripts/cleanup-trace-events.pl
@@ -0,0 +1,51 @@ 
+#!/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', '-l', "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;