Make '-m' (mail keys) a quad-option as suggested by Gerfried Fuchs
authorthijs <thijs@b513b33f-fedd-0310-b452-c3deb5f4c849>
Wed, 15 Aug 2007 22:13:08 +0000 (22:13 +0000)
committerthijs <thijs@b513b33f-fedd-0310-b452-c3deb5f4c849>
Wed, 15 Aug 2007 22:13:08 +0000 (22:13 +0000)
in #383423. I used his patch as inspiration but made some different
choices which I think results in better compatibility.

Let me know if any of you have an issue with this being changed.

git-svn-id: svn://svn.debian.org/pgp-tools/trunk@344 b513b33f-fedd-0310-b452-c3deb5f4c849

caff/caff
debian/changelog

index 8b9b701c66f3ffbf1dac528058f422bacd0ed178..493a349eb8c342013080876501a4cf2cc87a3359 100755 (executable)
--- a/caff/caff
+++ b/caff/caff
@@ -40,7 +40,7 @@ caff -- CA - Fire and Forget
 
 =over
 
 
 =over
 
-=item B<caff> [-eEmMRS] [-u I<yourkeyid>] I<keyid> [I<keyid> ..]
+=item B<caff> [-eERS] [-m I<yes|ask-yes|ask-no|no>] [-u I<yourkeyid>] I<keyid> [I<keyid> ..]
 
 =back
 
 
 =back
 
@@ -66,13 +66,10 @@ Export old signatures. Default is to ask the user for each old signature.
 Do not export old signatures. Default is to ask the user for each old
 signature.
 
 Do not export old signatures. Default is to ask the user for each old
 signature.
 
-=item B<-m>, B<--mail>
+=item B<-m>, B<--mail> I<yes|ask-yes|ask-no|no>
 
 
-Send mail after signing. Default is to ask the user for each uid.
-
-=item B<-M>, B<--no-mail>
-
-Do not send mail after signing. Default is to ask the user for each uid.
+Whether to send mail after signing. Default is to ask, for each uid,
+with a default value of yes.
 
 =item B<-R>, B<--no-download>
 
 
 =item B<-R>, B<--no-download>
 
@@ -214,12 +211,11 @@ With multiple keyids, sign with each key in turn.
 
 =item B<mail> [boolean]
 
 
 =item B<mail> [boolean]
 
-Do not prompt for sending mail, just do it. Default: B<0>.
-
-=item B<no-mail> [boolean]
+Whether to send mails. This is a quad-option, with which you can set the
+behaviour: yes always sends, no never sends; ask-yes and ask-no asks, for
+each uid, with according defaults for the question. Default: B<ask-yes>.
 
 
-Do not prompt for sending mail. The messages are still written to
-$CONFIG{'caffhome'}/keys/. Default: B<0>.
+In any case, the messages are also written to $CONFIG{'caffhome'}/keys/
 
 =item B<mail-template> [string]
 
 
 =item B<mail-template> [string]
 
@@ -662,7 +658,7 @@ sub version($) {
 sub usage($$) {
        my ($fd, $exitcode) = @_;
        version($fd);
 sub usage($$) {
        my ($fd, $exitcode) = @_;
        version($fd);
-       print $fd "Usage: $PROGRAM_NAME [-eEmMRS] [-u <yourkeyid>] <keyid> [<keyid> ...]\n";
+       print $fd "Usage: $PROGRAM_NAME [-eERS] [-m <yes|ask-yes|ask-no|no>] [-u <yourkeyid>] <keyid> [<keyid> ...]\n";
        print $fd "Consult the manual page for more information.\n";
        exit $exitcode;
 };
        print $fd "Consult the manual page for more information.\n";
        exit $exitcode;
 };
@@ -892,8 +888,8 @@ if (!GetOptions (
        '--export-old'    =>  \$params->{'export-old'},
        '-E'              =>  \$params->{'no-export-old'},
        '--no-export-old' =>  \$params->{'no-export-old'},
        '--export-old'    =>  \$params->{'export-old'},
        '-E'              =>  \$params->{'no-export-old'},
        '--no-export-old' =>  \$params->{'no-export-old'},
-       '-m'              =>  \$params->{'mail'},
-       '--mail'          =>  \$params->{'mail'},
+       '-m:s'              =>  \$params->{'mail'},
+       '--mail:s'          =>  \$params->{'mail'},
        '-M'              =>  \$params->{'no-mail'},
        '--no-mail'       =>  \$params->{'no-mail'},
        '-R'              =>  \$params->{'no-download'},
        '-M'              =>  \$params->{'no-mail'},
        '--no-mail'       =>  \$params->{'no-mail'},
        '-R'              =>  \$params->{'no-download'},
@@ -915,9 +911,21 @@ usage(\*STDERR, 1) unless scalar @ARGV >= 1;
 
 $CONFIG{'local-user'}  = $params->{'local-user'}  if defined $params->{'local-user'};
 $CONFIG{'no-download'} = $params->{'no-download'} if defined $params->{'no-download'};
 
 $CONFIG{'local-user'}  = $params->{'local-user'}  if defined $params->{'local-user'};
 $CONFIG{'no-download'} = $params->{'no-download'} if defined $params->{'no-download'};
+$CONFIG{'no-sign'}     = $params->{'no-sign'}     if defined $params->{'no-sign'};
+
+# If old 'no-mail' parameter, or if the 'mail' parameter is set to 'no'
+if ( $CONFIG{'no-mail'} || defined $params->{'no-mail'} ||
+       ( defined $params->{'mail'} && $params->{'mail'}  eq 'no' ) ) {
+       $CONFIG{'mail'} = 'no';
+} elsif ( defined $params->{'mail'} ) {
+       $CONFIG{'mail'} = $params->{'mail'};
+} else {
+       $CONFIG{'mail'} = 'ask-yes';
+}
+
 $CONFIG{'no-mail'}     = $params->{'no-mail'}     if defined $params->{'no-mail'};
 $CONFIG{'mail'}        = $params->{'mail'}        if defined $params->{'mail'};
 $CONFIG{'no-mail'}     = $params->{'no-mail'}     if defined $params->{'no-mail'};
 $CONFIG{'mail'}        = $params->{'mail'}        if defined $params->{'mail'};
-$CONFIG{'no-sign'}     = $params->{'no-sign'}     if defined $params->{'no-sign'};
+
 push @{$CONFIG{'key-files'}}, @{$params->{'key-files'}} if defined $params->{'key-files'};
 
 for my $keyid (map { split /\n/ } @ARGV) { # caff "`cat txt`" is a single argument
 push @{$CONFIG{'key-files'}}, @{$params->{'key-files'}} if defined $params->{'key-files'};
 
 for my $keyid (map { split /\n/ } @ARGV) { # caff "`cat txt`" is a single argument
@@ -1298,7 +1306,7 @@ for my $keyid (@keyids_ok) {
        if (scalar @UIDS == 0) {
                info("found no signed uids for $keyid");
        } else {
        if (scalar @UIDS == 0) {
                info("found no signed uids for $keyid");
        } else {
-               next if $CONFIG{'no-mail'}; # do not send mail
+               next if ($CONFIG{'mail'} eq 'no'); # do not send mail
 
                my @attached;
                for my $uid (@UIDS) {
 
                my @attached;
                for my $uid (@UIDS) {
@@ -1317,7 +1325,7 @@ for my $keyid (@keyids_ok) {
                        if (!$uid->{'is_uat'} && ($uid->{'text'} =~ /@/)) {
                                my $address = $uid->{'text'};
                                $address =~ s/.*<(.*)>.*/$1/;
                        if (!$uid->{'is_uat'} && ($uid->{'text'} =~ /@/)) {
                                my $address = $uid->{'text'};
                                $address =~ s/.*<(.*)>.*/$1/;
-                               if (ask("Mail signature for $uid->{'text'} to '$address'?", 1, $CONFIG{'mail'})) {
+                               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 $mail = send_mail($address, $can_encrypt, $longkeyid, $uid, @attached);
                                        if (defined $mail) {
                                                my $keydir = "$KEYSBASE/$DATE_STRING";
index 854e4ce5b2c7360cfd3f7bf97fe3eee658d39d9e..2fe199c0875ddcd596b78e92c7c59271b6934f7d 100644 (file)
@@ -14,11 +14,13 @@ signing-party (0.4.11-2) UNRELEASED; urgency=low
   * caff:
     + Add filename to one of the MIME parts as its absence breaks certain virus
       scanners.
   * caff:
     + Add filename to one of the MIME parts as its absence breaks certain virus
       scanners.
+    + Make -m (mail options) a yes/no/ask-yes/ask-no option, based on a
+      suggestion by Gerfried Fuchs (Closes: #383423).
   * gpg-mailkeys:
     + Resolve bashisms in gpg-mailkeys.
   * Cleanup package dependencies.
 
   * gpg-mailkeys:
     + Resolve bashisms in gpg-mailkeys.
   * Cleanup package dependencies.
 
- -- Thijs Kinkhorst <thijs@debian.org>  Thu, 02 Aug 2007 14:01:21 +0200
+ -- Thijs Kinkhorst <thijs@debian.org>  Wed, 15 Aug 2007 23:58:15 +0200
 
 signing-party (0.4.11-1) unstable; urgency=low
 
 
 signing-party (0.4.11-1) unstable; urgency=low