]> git.donarmstrong.com Git - debbugs.git/blobdiff - scripts/service.in
[project @ 2005-05-11 10:03:08 by cjwatson]
[debbugs.git] / scripts / service.in
index 9f2e39c880a658f520d64c967a475de957556fbe..8361b9fceb2c5c6079fb3016e4b12b15b51f536e 100755 (executable)
@@ -1,11 +1,12 @@
 #!/usr/bin/perl
-# $Id: service.in,v 1.95 2004/02/03 21:37:45 cjwatson Exp $
+# $Id: service.in,v 1.99 2005/04/09 16:21:02 cjwatson Exp $
 #
 # Usage: service <code>.nn
 # Temps:  incoming/P<code>.nn
 
 use File::Copy;
 use MIME::Parser;
+use Debbugs::MIME qw(decode_rfc1522);
 
 $config_path = '/etc/debbugs';
 $lib_path = '/usr/lib/debbugs';
@@ -76,7 +77,7 @@ for (@headerlines) {
     if (s/^(\S+):\s*//) {
        my $v = lc $1;
        print ">$v=$_<\n" if $debug;
-       $header{$v} = $_;
+       $header{$v} = decode_rfc1522($_);
     } else {
        print "!>$_<\n" if $debug;
     }
@@ -272,6 +273,7 @@ References: $header{'message-id'} $data->{msgid}
 In-Reply-To: $data->{msgid}
 Message-ID: <handler.$ref.$nn.notifdonectrl.$midix\@$gEmailDomain>
 Reply-To: $ref\@$gEmailDomain
+X-$gProject-PR-Message: they-closed-control $ref
 
 This is an automatic notification regarding your $gBug report
 #$ref: $data->{subject},
@@ -357,6 +359,7 @@ References: $header{'message-id'} $data->{msgid}
 In-Reply-To: $data->{msgid}
 Message-ID: <handler.$ref.$nn.newsubmitter.$midix\@$gEmailDomain>
 Reply-To: $ref\@$gEmailDomain
+X-$gProject-PR-Message: submitter-changed $ref
 
 The submitter address recorded for your $gBug report
 #$ref: $data->{subject}
@@ -473,12 +476,14 @@ END
            do {
                 &addmaintainers($data);
                $data->{keywords} = '' if ($addsub eq "set");
+               # Allow removing obsolete tags.
                if ($addsub eq "sub") {
                    foreach my $t (@badtags) {
                        $data->{keywords} = join ' ', grep $_ ne $t, 
                            split ' ', $data->{keywords};
                    }
                }
+               # Now process all other additions and subtractions.
                foreach my $t (@okaytags) {
                    $data->{keywords} = join ' ', grep $_ ne $t, 
                        split ' ', $data->{keywords};
@@ -719,6 +724,7 @@ In-Reply-To: $header{'message-id'}
 References: $header{'message-id'}
 Message-ID: <handler.s.$nn.transcript\@$gEmailDomain>
 Precedence: bulk
+X-$gProject-PR-Message: transcript
 
 ${transcript}Please contact me if you need assistance.
 
@@ -1012,6 +1018,7 @@ References: $header{'message-id'}
 In-Reply-To: $header{'message-id'}
 Message-ID: <handler.s.$nn.help.$midix\@$gEmailDomain>
 Precedence: bulk
+X-$gProject-PR-Message: doc-text $relpath
 
 END
     $ok++;
@@ -1039,6 +1046,7 @@ References: $header{'message-id'}
 In-Reply-To: $header{'message-id'}
 Message-ID: <handler.s.$nn.info.$midix\@$gEmailDomain>
 Precedence: bulk
+X-$gProject-PR-Message: doc-html $relpath
 
 END
          $ok++;
@@ -1054,12 +1062,14 @@ sub addmaintainers {
     # Data structure is:
     #   maintainer email address &c -> assoc of packages -> assoc of bug#'s
     my $data = shift;
-    my ($p, $addmaint, $pshow);
+    my ($p, $addmaint);
     &ensuremaintainersloaded;
     $anymaintfound=0; $anymaintnotfound=0;
     for $p (split(m/[ \t?,():]+/, $data->{package})) {
        $p =~ y/A-Z/a-z/;
-        $pshow= ($p =~ m/[-+.a-z0-9]+/ ? $& : '');
+       $p =~ /([a-z0-9.+-]+)/;
+       $p = $1;
+       next unless defined $p;
        if (defined $gSubscriptionDomain) {
            if (defined($pkgsrc{$p})) {
                addbcc("$pkgsrc{$p}\@$gSubscriptionDomain");
@@ -1151,6 +1161,7 @@ References: $header{'message-id'}
 In-Reply-To: $header{'message-id'}
 Message-ID: <handler.s.$nn.info.$midix\@$gEmailDomain>
 Precedence: bulk
+X-$gProject-PR-Message: getinfo
 
 $description follows: