]> git.cworth.org Git - notmuch/commitdiff
CLI/show: warn if crypto options are used with mbox format
authorDavid Bremner <david@tethera.net>
Thu, 21 Dec 2023 17:04:00 +0000 (09:04 -0800)
committerDavid Bremner <david@tethera.net>
Tue, 6 Aug 2024 09:50:33 +0000 (06:50 -0300)
This limitation seems somewhat hard to fix, but at least try to warn
users when combining crypto operations with mbox output format.

Because the default is --decrypt=auto, the warning is omitted if
--decrypt=auto is specified. While this is not great, it seems more
wrong to always warn, or to change the default because of this.

notmuch-show.c
test/T520-show.sh

index 7fb40ce9ab5d3f0179707a7c0ea88f9440673f25..8c23f8212f4a04fcb652e2d0050f7aad0ba2d1db 100644 (file)
@@ -1399,6 +1399,14 @@ notmuch_show_command (notmuch_database_t *notmuch, int argc, char *argv[])
            fprintf (stderr, "Error: specifying parts is incompatible with mbox output format.\n");
            return EXIT_FAILURE;
        }
+       if (params.crypto.decrypt != NOTMUCH_DECRYPT_FALSE
+           && params.crypto.decrypt != NOTMUCH_DECRYPT_AUTO) {
+           fprintf (stderr, "Warning: mbox format does not support decryption (ignored)\n");
+       }
+       if (params.crypto.verify) {
+           fprintf (stderr,
+                    "Warning: mbox format does not support signature verification (ignored)\n");
+       }
     } else if (format == NOTMUCH_FORMAT_RAW) {
        /* raw format only supports single message display */
        single_message = true;
index 8121c3db57877464bbaee2d6ca39c158e2b75911..1f7f6aa8569364d4311173f2860461866ae210d3 100755 (executable)
@@ -17,6 +17,25 @@ notmuch show foo..
 exit_code=$?
 test_expect_equal 1 $exit_code
 
+test_begin_subtest "warning for --mbox --decrypt"
+notmuch show --format=mbox --decrypt=true '*' 1>/dev/null 2>OUTPUT
+echo $? >> OUTPUT
+cat <<EOF > EXPECTED
+Warning: mbox format does not support decryption (ignored)
+Warning: mbox format does not support signature verification (ignored)
+0
+EOF
+test_expect_equal_file EXPECTED OUTPUT
+
+test_begin_subtest "warning for --mbox --verify"
+notmuch show --format=mbox --verify '*' 1>/dev/null 2>OUTPUT
+echo $? >> OUTPUT
+cat <<EOF > EXPECTED
+Warning: mbox format does not support signature verification (ignored)
+0
+EOF
+test_expect_equal_file EXPECTED OUTPUT
+
 test_begin_subtest "notmuch show --sort=newest-first"
 notmuch show --entire-thread=true '*' > EXPECTED
 notmuch show --entire-thread=true --sort=newest-first '*' > OUTPUT