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

login
register
mail settings
Submitter Markus Armbruster
Date June 7, 2013, 10:59 a.m.
Message ID <1370602761-3566-2-git-send-email-armbru@redhat.com>
Download mbox | patch
Permalink /patch/249660/
State New
Headers show

Comments

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

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;