From patchwork Mon Jul 17 22:19:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arun Isaac X-Patchwork-Id: 51760 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 09C9927BBEB; Mon, 17 Jul 2023 23:20:32 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-3.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 9C1EB27BBEA for ; Mon, 17 Jul 2023 23:20:30 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qLWZZ-00024h-Ma; Mon, 17 Jul 2023 18:20:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qLWZX-000244-RY for guix-patches@gnu.org; Mon, 17 Jul 2023 18:20:03 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qLWZX-0004zm-JJ for guix-patches@gnu.org; Mon, 17 Jul 2023 18:20:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qLWZW-0002Pw-Ik; Mon, 17 Jul 2023 18:20:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#63802] [PATCH 1/3] client: Separate serialize-email-address into a procedure. References: <20230530121132.26057-1-arunisaac@systemreboot.net> In-Reply-To: <20230530121132.26057-1-arunisaac@systemreboot.net> Resent-From: Arun Isaac Original-Sender: "Debbugs-submit" Resent-CC: arunisaac@systemreboot.net, maxim.cournoyer@gmail.com, guix-patches@gnu.org Resent-Date: Mon, 17 Jul 2023 22:20:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63802 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 63802@debbugs.gnu.org Cc: Arun Isaac , Arun Isaac , Maxim Cournoyer X-Debbugs-Original-Xcc: Arun Isaac , Maxim Cournoyer Received: via spool by 63802-submit@debbugs.gnu.org id=B63802.16896323739216 (code B ref 63802); Mon, 17 Jul 2023 22:20:02 +0000 Received: (at 63802) by debbugs.gnu.org; 17 Jul 2023 22:19:33 +0000 Received: from localhost ([127.0.0.1]:51080 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qLWZ3-0002Oa-E7 for submit@debbugs.gnu.org; Mon, 17 Jul 2023 18:19:33 -0400 Received: from mugam.systemreboot.net ([139.59.75.54]:41898) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qLWZ1-0002OQ-Ji for 63802@debbugs.gnu.org; Mon, 17 Jul 2023 18:19:33 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=systemreboot.net; s=default; h=Content-Transfer-Encoding:MIME-Version: Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=baP/c8eJUcFVvXrI1jjZO8yt7cHdFvNJrQXdw5e/pwo=; b=oU2nOOT/EJ2s3oc/OWjebbuAv2 6hTBGBA7WMlNMOSrRkP5uyaVFB+7zUSw4xJYFh/AnSQymJyd4s/wKSeNDCGa4KmW8a542b2LK1Rzq MfO8xeHGLm5sTaoN02nBQpr8QaOnLUH9uHlyqhK6BHNdbzDv39rIEqY0e92sVSV5rRPeE9EUJJgJ/ svWjilSIDywZHIzNvKE1OOXyC1GTBmxv2LLFnJGkIf99tIrTbGiXauhP05iprY3/cOxwMq3PEjeFs ETOjYrHohYxCSqKgTlH/d8XKaX7MBj1y186rzMEX5tK9LOD0tsusOy8W7QCeLiFWCvs8b86u3JrWh HJESIsUQ==; Received: from [192.168.2.1] (port=50314 helo=localhost.localdomain) by systemreboot.net with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1qLWYx-001Gpv-11; Mon, 17 Jul 2023 23:19:28 +0100 From: Arun Isaac Date: Mon, 17 Jul 2023 23:19:19 +0100 Message-Id: <20230717221921.28889-1-arunisaac@systemreboot.net> X-Mailer: git-send-email 2.40.1 MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * mumi/client.scm (serialize-email-address): New procedure. (reply-email-headers): Use serialize-email-address. * tests/client.scm (serialize-email-address): New variable. ("serialize email address", "serialize email address with comma in name"): New tests. --- mumi/client.scm | 14 ++++++++++---- tests/client.scm | 11 +++++++++++ 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/mumi/client.scm b/mumi/client.scm index 64ccbeb..c30429d 100644 --- a/mumi/client.scm +++ b/mumi/client.scm @@ -221,6 +221,14 @@ arguments." (unless (zero? (close-pipe port)) (error "Command invocation failed" command)))))))) +(define (serialize-email-address name address) + "Combine NAME and ADDRESS into a complete email address of the form +\"NAME
\". Double quote NAME if necessary." + (string-append (if (string-contains name ",") + (string-append "\"" name "\"") + name) + " <" address ">")) + (define* (git-send-email to patches #:optional (options '())) "Send PATCHES using git send-email to the TO address with @@ -269,10 +277,8 @@ ISSUE-NUMBER." ,@(match (delete-duplicates (map (lambda (message) (let ((from (assoc-ref message "from"))) - (string-append (if (string-contains (assoc-ref from "name") ",") - (string-append "\"" (assoc-ref from "name") "\"") - (assoc-ref from "name")) - " <" (assoc-ref from "address") ">"))) + (serialize-email-address (assoc-ref from "name") + (assoc-ref from "address")))) (vector->list (assoc-ref issue "messages")))) (() (list)) (cc (list (cons 'cc (string-join cc ", ")))))))) diff --git a/tests/client.scm b/tests/client.scm index 5352b08..2b2c1be 100644 --- a/tests/client.scm +++ b/tests/client.scm @@ -65,8 +65,19 @@ called with." (lambda _ (error "Do not poll server for issue number")))) +(define serialize-email-address + (@@ (mumi client) serialize-email-address)) + (test-begin "client") +(test-equal "serialize email address" + "Foo " + (serialize-email-address "Foo" "foo@example.com")) + +(test-equal "serialize email address with comma in name" + "\"Bar, Foo\" " + (serialize-email-address "Bar, Foo" "foobar@example.com")) + (test-equal "send patches to new issue" '(("git" "send-email" "--to=foo@patches.com" "foo.patch") ("git" "send-email" "--to=12345@example.com" "bar.patch" "foobar.patch")) From patchwork Mon Jul 17 22:19:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arun Isaac X-Patchwork-Id: 51761 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 399DF27BBEA; Mon, 17 Jul 2023 23:20:33 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-3.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 7D24A27BBE2 for ; Mon, 17 Jul 2023 23:20:30 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qLWZa-000254-Tg; Mon, 17 Jul 2023 18:20:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qLWZX-00023x-Ke for guix-patches@gnu.org; Mon, 17 Jul 2023 18:20:03 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qLWZX-0004xh-Cd for guix-patches@gnu.org; Mon, 17 Jul 2023 18:20:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qLWZX-0002Q5-19; Mon, 17 Jul 2023 18:20:03 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#63802] [PATCH 2/3] client: Add git-send-email-headers subcommand. Resent-From: Arun Isaac Original-Sender: "Debbugs-submit" Resent-CC: arunisaac@systemreboot.net, maxim.cournoyer@gmail.com, guix-patches@gnu.org Resent-Date: Mon, 17 Jul 2023 22:20:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63802 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 63802@debbugs.gnu.org Cc: Arun Isaac , Arun Isaac , Maxim Cournoyer X-Debbugs-Original-Xcc: Arun Isaac , Maxim Cournoyer Received: via spool by 63802-submit@debbugs.gnu.org id=B63802.16896323779239 (code B ref 63802); Mon, 17 Jul 2023 22:20:02 +0000 Received: (at 63802) by debbugs.gnu.org; 17 Jul 2023 22:19:37 +0000 Received: from localhost ([127.0.0.1]:51085 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qLWZ6-0002Or-QM for submit@debbugs.gnu.org; Mon, 17 Jul 2023 18:19:37 -0400 Received: from mugam.systemreboot.net ([139.59.75.54]:51466) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qLWZ4-0002OZ-1y for 63802@debbugs.gnu.org; Mon, 17 Jul 2023 18:19:35 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=systemreboot.net; s=default; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=Y4F8IAtxdSvYstMc95O1MVzT+4J3DPVl3euRSElbZyA=; b=ERp4qYc2yMCwXuVwiYkpW97JNZ HcJOCs+JkxxZYwmzxj2/3y1w3z56koIYk/xbB+5iaCivZmpVWfKu0UxOj4H/6rGYgWMtEW3IU75uJ W4lTNjVvdxToobcpvAHhhhnEZILICkU1wvvFlquCIWmKw4uHHfcs/d9+Hd5geDvVjEprEFbswqYjF olfID35IfT1douIX/sSwqzk32q7IPNayVv4X2iFC7yY6XNRzrMqzW0uqfsfCIv0micy4hjvTWKaXm Zu72EbDgort4/2wnoDsHPav1EaQwQ7x0a69x9pTBNQOn1oQIk64lDQvEB3BkEXxJMSuMn3k+8TG6b 80B/U3QA==; Received: from [192.168.2.1] (port=50314 helo=localhost.localdomain) by systemreboot.net with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1qLWZ1-001Gpv-0U; Mon, 17 Jul 2023 23:19:31 +0100 From: Arun Isaac Date: Mon, 17 Jul 2023 23:19:20 +0100 Message-Id: <20230717221921.28889-2-arunisaac@systemreboot.net> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230717221921.28889-1-arunisaac@systemreboot.net> References: <20230717221921.28889-1-arunisaac@systemreboot.net> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * mumi/client.scm: Import (rnrs exceptions). (git-send-email-headers): New public procedure. (split-cc): New procedure. * scripts/mumi.in: Add git-send-email-headers subcommand. * tests/client.scm (split-cc): New variable. ("split Cc field"): New test. --- mumi/client.scm | 51 +++++++++++++++++++++++++++++++++++++++++++++++- scripts/mumi.in | 2 ++ tests/client.scm | 8 ++++++++ 3 files changed, 60 insertions(+), 1 deletion(-) diff --git a/mumi/client.scm b/mumi/client.scm index c30429d..797ec91 100644 --- a/mumi/client.scm +++ b/mumi/client.scm @@ -17,6 +17,7 @@ ;;; along with mumi. If not, see . (define-module (mumi client) + #:use-module (rnrs exceptions) #:use-module (rnrs io ports) #:use-module (srfi srfi-1) #:use-module (srfi srfi-19) @@ -38,7 +39,8 @@ print-current-issue set-current-issue! clear-current-issue! - send-email)) + send-email + git-send-email-headers)) (define (git-top-level) "Return the top-level directory of the current git repository." @@ -229,6 +231,13 @@ arguments." name) " <" address ">")) +(define (split-cc cc) + "Split CC into a list of email addresses." + (map (lambda (address) + (serialize-email-address (assq-ref address 'name) + (assq-ref address 'address))) + (assq-ref (parse-email-headers (string-append "Cc: " cc "\n")) + 'cc))) (define* (git-send-email to patches #:optional (options '())) "Send PATCHES using git send-email to the TO address with @@ -311,3 +320,43 @@ ISSUE-NUMBER." "@" (client-config 'debbugs-host)) other-patches))))) + +(define (git-send-email-headers patch) + "Print send-email headers for PATCH." + (let* (;; Compute headers if configured in git config. + (header-command + (false-if-exception + (call-with-input-pipe* (list "git" "config" "sendemail.headerCmd") + get-line))) + (headers + (if header-command + (call-with-input-pipe (string-append header-command " " patch) + get-string-all) + "")) + (external-x-debbugs-cc + (cond + ((assq-ref (parse-email-headers (string-append headers "\n")) + 'x-debbugs-cc) + => split-cc) + (else '()))) + ;; Fetch Cc addresses for current issue. + (x-debbugs-cc + (cond + ((assq-ref (reply-email-headers (current-issue-number)) + 'cc) + => split-cc) + (else '())))) + ;; Print X-Debbugs-Cc header. + (display "X-Debbugs-Cc: ") + (display (string-join (delete-duplicates + (append x-debbugs-cc external-x-debbugs-cc)) + ", ")) + (newline) + ;; Print headers other than X-Debbugs-Cc. + ;; TODO: RFC5322 headers are not restricted to a single + ;; line. "Folded" multi-line headers are allowed. Support them. + (for-each (lambda (line) + (unless (string-prefix-ci? "X-Debbugs-Cc:" line) + (display line) + (newline))) + (string-split headers #\newline)))) diff --git a/scripts/mumi.in b/scripts/mumi.in index 2295328..8fb7cd4 100644 --- a/scripts/mumi.in +++ b/scripts/mumi.in @@ -163,6 +163,8 @@ (client:clear-current-issue!)) (("send-email" . patches) (client:send-email patches)) + (("git-send-email-headers" patch) + (client:git-send-email-headers patch)) (("mailer" . rest) (let* ((opts (parse-options rest)) (sender (assoc-ref opts 'sender)) diff --git a/tests/client.scm b/tests/client.scm index 2b2c1be..ced573b 100644 --- a/tests/client.scm +++ b/tests/client.scm @@ -68,6 +68,9 @@ called with." (define serialize-email-address (@@ (mumi client) serialize-email-address)) +(define split-cc + (@@ (mumi client) split-cc)) + (test-begin "client") (test-equal "serialize email address" @@ -78,6 +81,11 @@ called with." "\"Bar, Foo\" " (serialize-email-address "Bar, Foo" "foobar@example.com")) +(test-equal "split Cc field" + (list "Foo " + "\"Bar, Foo\" ") + (split-cc "Foo , \"Bar, Foo\" ")) + (test-equal "send patches to new issue" '(("git" "send-email" "--to=foo@patches.com" "foo.patch") ("git" "send-email" "--to=12345@example.com" "bar.patch" "foobar.patch")) From patchwork Mon Jul 17 22:19:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arun Isaac X-Patchwork-Id: 51762 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id D1CAB27BBE9; Mon, 17 Jul 2023 23:20:42 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-3.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id A229027BBE2 for ; Mon, 17 Jul 2023 23:20:40 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qLWZa-00024m-CT; Mon, 17 Jul 2023 18:20:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qLWZY-00024M-JL for guix-patches@gnu.org; Mon, 17 Jul 2023 18:20:04 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qLWZY-00050Z-Ao for guix-patches@gnu.org; Mon, 17 Jul 2023 18:20:04 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qLWZX-0002QD-Dn; Mon, 17 Jul 2023 18:20:03 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#63802] [PATCH 3/3] client: Use mumi git-send-email-headers subcommand. Resent-From: Arun Isaac Original-Sender: "Debbugs-submit" Resent-CC: arunisaac@systemreboot.net, maxim.cournoyer@gmail.com, guix-patches@gnu.org Resent-Date: Mon, 17 Jul 2023 22:20:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63802 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 63802@debbugs.gnu.org Cc: Arun Isaac , Arun Isaac , Maxim Cournoyer X-Debbugs-Original-Xcc: Arun Isaac , Maxim Cournoyer Received: via spool by 63802-submit@debbugs.gnu.org id=B63802.16896323829262 (code B ref 63802); Mon, 17 Jul 2023 22:20:03 +0000 Received: (at 63802) by debbugs.gnu.org; 17 Jul 2023 22:19:42 +0000 Received: from localhost ([127.0.0.1]:51090 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qLWZB-0002PI-4o for submit@debbugs.gnu.org; Mon, 17 Jul 2023 18:19:42 -0400 Received: from mugam.systemreboot.net ([139.59.75.54]:51468) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qLWZ6-0002Op-O6 for 63802@debbugs.gnu.org; Mon, 17 Jul 2023 18:19:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=systemreboot.net; s=default; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=Ou4IyKPVaciCMGK+XlhN/X0j7I6dOSl1KI/tfKO/+ds=; b=Heh1KSftPD8UlvOvOVCzq1Pd9a BwF+l1jmFmiEqiy4OCzbtFO4ealTpiwrhBtH+or5PGv39hPWmp8Kqzf8N6fSepyc/oxYEd9fFRui5 meypCnZ8x2M69nvEEp5bpQDtZF3EqnDVArPaxBG0MBJagGADgVn/iDXj9QMFsO8VgoeZGS9fiiEMN 3ltvayLvGgOUeEABxyKaaLqj82cHix9Qvz3gp2Q/xfO9p+reiaJxn6/9lB7B2VgeQrfAryF/EPABB SANNDPg+F8NqCpvnZ6W2t4UQJTzYD18N6ZLzvYX3fUfwbhe1XpT0f8X/HO2cjUAXxi5K1oIMR3eBh LYtNsjLw==; Received: from [192.168.2.1] (port=50314 helo=localhost.localdomain) by systemreboot.net with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1qLWZ3-001Gpv-2X; Mon, 17 Jul 2023 23:19:34 +0100 From: Arun Isaac Date: Mon, 17 Jul 2023 23:19:21 +0100 Message-Id: <20230717221921.28889-3-arunisaac@systemreboot.net> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230717221921.28889-1-arunisaac@systemreboot.net> References: <20230717221921.28889-1-arunisaac@systemreboot.net> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * mumi/client.scm (send-email): Accept mumi-command argument and use it to construct --header-cmd. * scripts/mumi.in: Pass command to send-email. * tests/client.scm ("send patches to new issue", "send patches to existing issue", "send single patch to new issue", "send single patch to existing issue", "send patch to existing issue and Cc other participants"): Adjust tests. --- mumi/client.scm | 10 +++++++--- scripts/mumi.in | 2 +- tests/client.scm | 17 ++++++++++++++--- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/mumi/client.scm b/mumi/client.scm index 797ec91..6ac69f9 100644 --- a/mumi/client.scm +++ b/mumi/client.scm @@ -292,8 +292,9 @@ ISSUE-NUMBER." (() (list)) (cc (list (cons 'cc (string-join cc ", ")))))))) -(define (send-email patches) - "Send PATCHES via email." +(define (send-email mumi-command patches) + "Send PATCHES via email. MUMI-COMMAND is the mumi program currently +invoked." (if (current-issue-number) ;; If an issue is current, send patches to that issue's email ;; address. @@ -301,7 +302,10 @@ ISSUE-NUMBER." (git-send-email (string-append (number->string issue-number) "@" (client-config 'debbugs-host)) - patches)) + patches + (list (string-append "--header-cmd=" + mumi-command + " git-send-email-headers")))) (match patches ;; If it's a single patch, send it to the patch email address ;; and be done with it diff --git a/scripts/mumi.in b/scripts/mumi.in index 8fb7cd4..5b98634 100644 --- a/scripts/mumi.in +++ b/scripts/mumi.in @@ -162,7 +162,7 @@ (("new") (client:clear-current-issue!)) (("send-email" . patches) - (client:send-email patches)) + (client:send-email (car (program-arguments)) patches)) (("git-send-email-headers" patch) (client:git-send-email-headers patch)) (("mailer" . rest) diff --git a/tests/client.scm b/tests/client.scm index ced573b..d28bc1a 100644 --- a/tests/client.scm +++ b/tests/client.scm @@ -99,10 +99,13 @@ called with." (const 12345)) client-config-stub) (cut (@@ (mumi client) send-email) + "mumi" (list "foo.patch" "bar.patch" "foobar.patch"))))))) (test-equal "send patches to existing issue" - '(("git" "send-email" "--to=12345@example.com" "foo.patch" "bar.patch" "foobar.patch")) + '(("git" "send-email" "--to=12345@example.com" + "--header-cmd=mumi git-send-email-headers" + "foo.patch" "bar.patch" "foobar.patch")) (map (match-lambda ((command _) command)) (trace-calls (var@@ (mumi client) call-with-input-pipe*) @@ -114,6 +117,7 @@ called with." client-config-stub do-not-poll-server-for-issue-number) (cut (@@ (mumi client) send-email) + "mumi" (list "foo.patch" "bar.patch" "foobar.patch"))))))) (test-equal "send single patch to new issue" @@ -127,10 +131,13 @@ called with." client-config-stub do-not-poll-server-for-issue-number) (cut (@@ (mumi client) send-email) + "mumi" (list "foo.patch"))))))) (test-equal "send single patch to existing issue" - '(("git" "send-email" "--to=12345@example.com" "foo.patch")) + '(("git" "send-email" "--to=12345@example.com" + "--header-cmd=mumi git-send-email-headers" + "foo.patch")) (map (match-lambda ((command _) command)) (trace-calls (var@@ (mumi client) call-with-input-pipe*) @@ -142,10 +149,13 @@ called with." client-config-stub do-not-poll-server-for-issue-number) (cut (@@ (mumi client) send-email) + "mumi" (list "foo.patch"))))))) (test-equal "send patch to existing issue and Cc other participants" - '(("git" "send-email" "--to=12345@example.com" "foo.patch")) + '(("git" "send-email" "--to=12345@example.com" + "--header-cmd=mumi git-send-email-headers" + "foo.patch")) (map (match-lambda ((command _) command)) (trace-calls (var@@ (mumi client) call-with-input-pipe*) @@ -157,6 +167,7 @@ called with." client-config-stub do-not-poll-server-for-issue-number) (cut (@@ (mumi client) send-email) + "mumi" (list "foo.patch"))))))) (test-end "client")