summaryrefslogtreecommitdiffstats
path: root/kmail/kmail-3.4.1-update-status-filters.pl
blob: 735daf774eda9f0105bd713a0bbab0d1ee012f5e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/perl -w

use strict;

# This script converts lower case status filter rules to upper case.

# read the whole config file
my $currentGroup = "";
my %configFile;
while ( <> ) {
    chomp;
    next if ( /^$/ ); # skip empty lines
    next if ( /^\#/ ); # skip comments
    if ( /^\[/ ) { # group begin
      $currentGroup = $_;
      next;
    } elsif ( $currentGroup ne "" ) { # normal entry
      my ($key,$value) = split /=/;
      $configFile{$currentGroup}{$key}=$value;
    }
}

# go through all filters and check for rules which are no longer valid
my @filterGroups = grep { /^\[Filter \#\d+\]/ } keys %configFile;
foreach my $filterGroup (@filterGroups) {
  my $numRules = $configFile{$filterGroup}{'rules'};
  # go through all rules:
  for ( my $i = 0; $i < $numRules; ++$i ) {
    my $c = chr( ord("A") + $i );
    my $fieldKey = "field$c";
    my $field = $configFile{$filterGroup}{$fieldKey};
    if ( $field eq "<status>" ) {
      my $contentsKey = "contents$c";
      my $contents = $configFile{$filterGroup}{$contentsKey};
      if ( $contents =~ /^[a-z]/ ) {
        $contents = ucfirst( $contents );
        print "# DELETE $filterGroup$contentsKey\n";
        print "$filterGroup\n$contentsKey=$contents\n";
      }
    }
  }
}