rewrote uploader notification script in perl to handle recipients which need mime encoding rsync
authorMatthias Förste foerste@schlittermann.de
Mon, 20 Feb 2012 13:31:29 +0100
branchrsync
changeset 36 476655f48d19
parent 35 ff9bdf95363c
child 37 a31ece02f311
rewrote uploader notification script in perl to handle recipients which need mime encoding
bin/maybe-notify-uploader
bin/notify-acceptance
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bin/maybe-notify-uploader	Mon Feb 20 13:31:29 2012 +0100
@@ -0,0 +1,28 @@
+#!/usr/bin/perl
+
+use Mail::Sendmail;
+use MIME::EncWords qw(encode_mimewords);
+
+my ($result, $codename, $source, $version, $changes) = @ARGV[0..4];
+
+my ($pat, $fallback, $from) = qw(@schlittermann.de apt@apt.net.schlittermann.de apt@apt.net.schlittermann.de);
+my $r;
+
+open C, '<', "$changes" or die "Can't open '<', '$changes': $!\n";
+while (<C>) {
+    $r = $1 and last if /^changed-by:\s*(.*)\s*$/i;
+    $r = $1 if /^maintainer:\s*(.*)\s*$/i;
+}
+
+$r =~ $pat or $r = $fallback;
+$r = encode_mimewords($r, (Charset => $1)) if (defined $ENV{LANG} and $ENV{LANG} =~ /.*\.([^.]+)$/);
+
+my $mail = {
+
+    To => $r,
+    From => $from,
+    Subject => "$source $version $result in $codename"
+
+};
+
+sendmail %{$mail} or die $Mail::Sendmail::error;
--- a/bin/notify-acceptance	Mon Feb 20 11:27:48 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-#!/bin/bash
-
-  PATTERN='@schlittermann\.de>?$'
- FALLBACK='apt <apt@apt.net.schlittermann.de>'
-     FROM='apt <apt@apt.net.schlittermann.de>'
-
-   RESULT="$1"
- CODENAME="$2"
-   SOURCE="$3"
-  VERSION="$4"
-  CHANGES="$5"
-
-     HOST=${HOSTNAME:-$(hostname)}
-        R=
-
-shopt -s nocasematch
-while read l; do
-    [[ "$l" =~ ^changed-by:\s*(.*)\s*$ ]] && { R=${BASH_REMATCH[1]}; break; }
-    [[ "$l" =~ ^maintainer:\s*(.*)\s*$ ]] && R={$BASH_REMATCH[1]}
-done < "$CHANGES"
-
-[[ "$R" =~ $PATTERN ]] || R="$FALLBACK"
-
-#To: =?utf8?B?$(echo $R | base64)?
-cat | /usr/sbin/exim "$R" <<MAIL
-From: $FROM
-To: $R
-Subject: [$HOST] $SOURCE $VERSION $RESULT in $CODENAME
-MAIL