#! /usr/bin/ruby -nw # Read procmail log, and colourise. # Needs highline.rb, which is used as an easy way of generating colours. # # Matt Foster require "highline/import" colors = %w{black red green yellow blue magenta cyan white brightred} # Grab (and split) lines: if $_ =~ /^From ([\S\.\-]+@[\S\.\-]+|MAILER-DAEMON) (\w+) (\w+) (\d+) (\d+:\d+:\d+) (\w+)$/ say(" <%= color(\"#{$5}\", :magenta) %> : Message From: <<%= color(\"#{$1.gsub('"','\"')}\", :red) %>>\n") elsif $_ =~ /^\s+Subject:\s+(.*)$/ say(" Subject : <%= color(\"#{$1.gsub('"','\"')}\", :yellow) %>\n") elsif $_ =~ /^\s*Folder:\s+lists\/(\S+).*$/ say(" List : <%= color(\"#{$1}\", :cyan) %> \n") puts elsif $_ =~ /^\s*Folder:\s+formail.*/ say(" Folder : <%= BOLD %><%= color('SPAM', :red) %><%= CLEAR %>\n") puts elsif $_ =~ /^\s*Folder:\s+\/dev\/null.*/ say(" Deleted : <%= BOLD %><%= color('Duplicate Message', :red) %><%= CLEAR %>\n") puts elsif $_ =~ /^\s*Folder:\s+(.*\/Inbox)\s+(\d+)$/ say(" Folder : <%= color(\"#{$1}\", :green) %>\n") puts elsif $_ =~ /^\s*Folder:\s+(.*)\s+(\d+)$/ say(" Folder : <%= color(\"#{$1}\", :cyan) %>\n") puts end