topics!
[filters.git] / fanboy
1 #!/usr/bin/perl
2
3 my %topics=(
4 git => [qw(linus git linux rebase rebased merge merged cherry-pick
5 branch branched branches git-*)],
6 ubuntu => [qw(Mark MOTU ubuntu debian rock rocks rule naked dapper
7 feisty fiesty gutsy hoary edgy universe launchpad gnome desktop
8 sabdfl)],
9 );
10
11 if (! @ARGV) {
12 @ARGV=@{$topics{git}};
13 }
14 elsif (@ARGV == 1 && exists $topics{$ARGV[0]}) {
15 @ARGV=@{$topics{$ARGV[0]}};
16 }
17
18 my $total_awesomeness_dude=join("|",
19 map {
20 $_=quotemeta($_);
21 s/\\\*/.*/g;
22 s/\\\?/./g;
23 $_;
24 } reverse sort @ARGV);
25
26 my $len=0;
27 my $indent="";
28 my $indent_printed=0;
29 while (<STDIN>) {
30 if (/$total_awesomeness_dude/) {
31 if (/^([>|][>|\s]*)/) {
32 if ($indent ne $1) {
33 print "\n" if $len;
34 $len=0;
35 $indent=$1;
36 $indent_printed=0;
37 }
38 }
39 else {
40 if (length $indent && $indent_printed) {
41 print "\n";
42 $len=0;
43 }
44 $indent="";
45 $indent_printed=0;
46 }
47
48 while(/(($total_awesomeness_dude)[.?!]*)/ig) {
49 $len+=length($1)+1;
50 if ($len > 70) {
51 print "\n";
52 $len=0;
53 }
54 if (length $indent && ! $indent_printed) {
55 print $indent;
56 $indent_printed=1;
57 }
58 print $1." ";
59 }
60 }
61 }
62 print "\n" if $len;
This page took 0.024729 seconds and 5 git commands to generate.