only fair..
[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 dapper
7 feisty fiesty gutsy hoary edgy universe launchpad gnome desktop
8 naked sabdfl)],
9 debian => [qw(Debian rules rule ian murdock upstream release
10 stable unstable testing apt apt-get deb)],
11 );
12
13 if (! @ARGV) {
14 @ARGV=@{$topics{git}};
15 }
16 elsif (@ARGV == 1 && exists $topics{lc $ARGV[0]}) {
17 @ARGV=@{$topics{lc $ARGV[0]}};
18 }
19
20 my $total_awesomeness_dude=join("|",
21 map {
22 $_=quotemeta($_);
23 s/\\\*/.*/g;
24 s/\\\?/./g;
25 $_;
26 } reverse sort @ARGV);
27
28 my $len=0;
29 my $indent="";
30 my $indent_printed=0;
31 while (<STDIN>) {
32 if (/$total_awesomeness_dude/) {
33 if (/^([>|][>|\s]*)/) {
34 if ($indent ne $1) {
35 print "\n" if $len;
36 $len=0;
37 $indent=$1;
38 $indent_printed=0;
39 }
40 }
41 else {
42 if (length $indent && $indent_printed) {
43 print "\n";
44 $len=0;
45 }
46 $indent="";
47 $indent_printed=0;
48 }
49
50 while(/(($total_awesomeness_dude)[.?!]*)/ig) {
51 $len+=length($1)+1;
52 if ($len > 70) {
53 print "\n";
54 $len=0;
55 }
56 if (length $indent && ! $indent_printed) {
57 print $indent;
58 $indent_printed=1;
59 }
60 print $1." ";
61 }
62 }
63 }
64 print "\n" if $len;
This page took 0.026212 seconds and 5 git commands to generate.