[Pgp-tools-commit] r479 - in trunk: caff debian

Peter Palfrader weasel at alioth.debian.org
Sat Jul 31 12:19:33 UTC 2010


Author: weasel
Date: 2010-07-31 12:19:29 +0000 (Sat, 31 Jul 2010)
New Revision: 479

Modified:
   trunk/caff/caff
   trunk/debian/changelog
Log:
caff: Create the mail files in ~/.caff/keys even if mail is not sent (closes: #590666)

Modified: trunk/caff/caff
===================================================================
--- trunk/caff/caff	2010-07-31 11:36:10 UTC (rev 478)
+++ trunk/caff/caff	2010-07-31 12:19:29 UTC (rev 479)
@@ -756,13 +756,13 @@
 
 
 ######
-# Send an email to $address.  If $can_encrypt is true then the mail
+# Create an email to $address.  If $can_encrypt is true then the mail
 # will be PGP/MIME encrypted to $longkeyid.
 #
 # $longkeyid, $uid, and @attached will be used in the email and the template.
 ######
-#send_mail($address, $can_encrypt, $longkeyid, $uid, @attached);
-sub send_mail($$$@) {
+# create_mail($address, $can_encrypt, $longkeyid, $uid, @attached);
+sub create_mail($$$@) {
 	my ($address, $can_encrypt, $key_id, @keys) = @_;
 
 	my $template = Text::Template->new(TYPE => 'STRING', SOURCE => $CONFIG{'mail-template'})
@@ -855,9 +855,21 @@
 	$message_entity->head->add("Reply-To", $CONFIG{'reply-to'}) if defined $CONFIG{'reply-to'};
 	$message_entity->head->add("Bcc", $CONFIG{'bcc'}) if defined $CONFIG{'bcc'};
 	$message_entity->head->add("User-Agent", $USER_AGENT);
-	mywarn("You have set arguments to pass to Mail::Mailer.  Better fix your MTA.  (Also, Mail::Mailer's error reporting is non existant, so it won't tell you when it doesn't work.)") if (scalar @{$CONFIG{'mailer-send'}} > 0);
+	return $message_entity;
+};
+
+######
+# send a mail message (MIME::Entity)
+######
+my $warned_about_broken_mailer_send = 0;
+sub send_message($) {
+	my ($message_entity) = @_;
+
+	if ( (scalar @{$CONFIG{'mailer-send'}} > 0) && !$warned_about_broken_mailer_send) {
+		mywarn("You have set arguments to pass to Mail::Mailer.  Better fix your MTA.  (Also, Mail::Mailer's error reporting is non existant, so it won't tell you when it doesn't work.)");
+		$warned_about_broken_mailer_send = 1;
+	};
 	$message_entity->send(@{$CONFIG{'mailer-send'}});
-	$message_entity->stringify();
 };
 
 ######
@@ -1451,17 +1463,18 @@
 			if (!$uid->{'is_uat'} && ($uid->{'text'} =~ /@/)) {
 				my $address = $uid->{'text'};
 				$address =~ s/.*<(.*)>.*/$1/;
-				if (ask("Mail signature for $uid->{'text'} to '$address'?", $CONFIG{'mail'} ne 'ask-no', $CONFIG{'mail'} eq 'yes')) {
-					my $mail = send_mail($address, $can_encrypt, $longkeyid, $uid, @attached);
-					if (defined $mail) {
-						my $keydir = "$KEYSBASE/$DATE_STRING";
-						my $mailfile = "$keydir/$longkeyid.mail.".$uid->{'serial'}.".".sanitize_uid($uid->{'text'});
-						open (KEY, ">$mailfile") or die ("Cannot open $mailfile: $!\n");
-						print KEY $mail;
-						close KEY;
-					} else {
-						warn "Generating mail failed.\n";
-					};
+				my $mail = create_mail($address, $can_encrypt, $longkeyid, $uid, @attached);
+				if (defined $mail) {
+					my $should_send_mail = ask("Mail signature for $uid->{'text'} to '$address'?", $CONFIG{'mail'} ne 'ask-no', $CONFIG{'mail'} eq 'yes');
+					send_message($mail) if $should_send_mail;
+
+					my $keydir = "$KEYSBASE/$DATE_STRING";
+					my $mailfile = "$keydir/$longkeyid.mail.".($should_send_mail ? '' : 'unsent.').$uid->{'serial'}.".".sanitize_uid($uid->{'text'});
+					open (MAILFILE, ">$mailfile") or die ("Cannot open $mailfile: $!\n");
+					print MAILFILE $mail->stringify();
+					close MAILFILE;
+				} else {
+					warn "Generating mail failed.\n";
 				};
 			};
 		};

Modified: trunk/debian/changelog
===================================================================
--- trunk/debian/changelog	2010-07-31 11:36:10 UTC (rev 478)
+++ trunk/debian/changelog	2010-07-31 12:19:29 UTC (rev 479)
@@ -35,8 +35,10 @@
     + Make importing of keys to be signed from the normal gpg optional
       (--keys-from-gnupg).
     + refactor copying of command line options into global config variable.
+    + Create the mail files in ~/.caff/keys even if mail is not sent
+      (closes: #590666).
 
- -- Peter Palfrader <weasel at debian.org>  Sat, 31 Jul 2010 13:32:57 +0200
+ -- Peter Palfrader <weasel at debian.org>  Sat, 31 Jul 2010 14:18:09 +0200
 
 signing-party (1.1.3-1) unstable; urgency=low
 




More information about the Pgp-tools-commit mailing list