3 个版本
0.1.2 | 2022 年 4 月 22 日 |
---|---|
0.1.1 | 2022 年 2 月 22 日 |
0.1.0 | 2022 年 2 月 22 日 |
#170 在 电子邮件
20KB
132 行
kmail
kmail
是一个小型辅助工具,用于自动收集在发送补丁时应包含的电子邮件地址,并使用这些地址和补丁集调用 git send-email。这本来可以是一个 bash 脚本,但我更喜欢 Rust。
安装
首先,请确保您的系统上已安装 cargo
。以下内容取决于您所在的平台
$ sudo dnf install cargo
或者
sudo apt install cargo
一旦您安装了 cargo
,您可以使用以下命令安装 kmail
$ cargo install kmail
请确保将 $HOME/.cargo/bin
添加到您的 $PATH
中,以便自动发现由 cargo
安装的任何二进制文件
echo "export PATH=$PATH:$HOME/.cargo.bin" >> ~/.bashrc
使用方法
一旦您安装了 kmail
,您只需在命令行上调用 kmail
即可使用它。让我们看看使用说明
$ kmail --help
kmail 1.0
David Vernet <[email protected]>
A utility for automatically sending emails to the correct maintainers for a kernel patchset.
Kmail invokes scripts/get_maintainer.pl on a patchset, parses the email
addresses (both the maintainers themselves and the relevant lists) to
email, and sends them the patchset using git send-email.
USAGE:
kmail [OPTIONS] <PATCH_PATH> [-- <EXTRA_ARGUMENTS>...]
ARGS:
<PATCH_PATH> The path to the patch (or a directory containing patches) to be
mailed to the kernel upstream community using git send-email
<EXTRA_ARGUMENTS>... Arguments that will be passed directly to git send-email. For
example, you may specify -- --dry-run --cc personal@my_domain.com to
have the invocation be a dry-run, and to cc your own personal email
address
OPTIONS:
-h, --help Print help information
-t, --tree <TREE_PATH> The path to a linux source tree containing a MAINTAINERS file, and a
scripts/get_maintainer.pl script. If no path is specified, the current
directory is assumed to be a linux kernel tree
-V, --version Print version information
如您所见,没有太多选项需要指定,只有一个必需的参数(尽管这取决于脚本的调用方式)。
发送补丁
假设您有一个补丁 /tmp/0001-TESTING-MY-DUMB-SCRIPT.patch
,您想将其发送出去供审查,并在补丁更新的子系统中 MAINTAINERS
中有如下条目
LIVE PATCHING
M: David Vernet <void@manifault.com>
L: fake-list@manifault.com
S: Maintained
您可以使用 kmail
自动调用 git send-email
如下所示
$ pwd
/home/Decave/linux
$ kmail /tmp/0001-TESTING-MY-DUMB-SCRIPT.patch
/tmp/0001-TESTING-MY-DUMB-SCRIPT.patch
From: David Vernet <[email protected]>
To: [email protected],
[email protected]
Subject: [PATCH] TESTING MY DUMB SCRIPT
Date: Tue, 22 Feb 2022 06:36:07 -0800
Message-Id: <20220222143607[email protected]>
X-Mailer: git-send-email 2.30.2
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Send this email? ([y]es|[n]o|[e]dit|[q]uit|[a]ll):
特定树
kmail
接受一个 -t
/ --tree
选项,允许您指向特定的 Linux 内核树(如果您是 Linux 内核贡献者,那么您可能根据您为补丁贡献的子系统,本地有许多树已被检出)。如果未指定此选项(如上述示例所示),kmail
将检查您的本地树是否为 Linux 内核树。否则,您可以通过以下方式指定 -t
$ pwd
/home/Decave/linux
$ kmail --tree ../linus /tmp/0001-TESTING-MY-DUMB-SCRIPT.patch
/tmp/0001-TESTING-MY-DUMB-SCRIPT.patch
From: David Vernet <[email protected]>
To: [email protected],
[email protected]
Subject: [PATCH] TESTING MY DUMB SCRIPT
Date: Tue, 22 Feb 2022 06:56:29 -0800
Message-Id: <20220222145629[email protected]>
X-Mailer: git-send-email 2.30.2
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Send this email? ([y]es|[n]o|[e]dit|[q]uit|[a]ll):
在此示例中,kmail
使用 Linus 源树中的 MAINTAINERS
和 scripts/get_maintainer.pl
文件,而不是当前工作目录中的 "linux" 树。
向 git send-email 传递参数
您可以通过指定它们在 --
之后传递额外的参数给 git send-email
,其中 kmail
的所有选项和参数之前都跟随此选项
$ kmail --tree ../linus /tmp/0001-TESTING-MY-DUMB-SCRIPT.patch -- --dry-run
/tmp/0001-TESTING-MY-DUMB-SCRIPT.patch
Dry-OK. Log says:
Sendmail: /bin/msmtp -f [email protected] -i [email protected] [email protected] [email protected]
From: David Vernet <[email protected]>
To: [email protected],
[email protected]
Subject: [PATCH] TESTING MY DUMB SCRIPT
Date: Tue, 22 Feb 2022 06:59:33 -0800
Message-Id: <20220222145933[email protected]>
X-Mailer: git-send-email 2.30.2
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Result: OK
在这种情况下,我们传递了 --dry-run
。例如,我们也可以传递 --cc another-email@domain.com
,如果我们想将其他收件人添加为补丁的抄送人
$ kmail --tree ../linus /tmp/0001-TESTING-MY-DUMB-SCRIPT.patch -- --dry-run --cc [email protected]
/tmp/0001-TESTING-MY-DUMB-SCRIPT.patch
Dry-OK. Log says:
Sendmail: /bin/msmtp -f [email protected] -i [email protected] [email protected] [email protected] [email protected]
From: David Vernet <[email protected]>
To: [email protected],
[email protected]
Cc: [email protected]
Subject: [PATCH] TESTING MY DUMB SCRIPT
Date: Tue, 22 Feb 2022 07:02:25 -0800
Message-Id: <20220222150225[email protected]>
X-Mailer: git-send-email 2.30.2
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Result: OK
贡献
我认为这里没有太多(如果有的话)其他要做的,但如果您想到了一些您想要的功能,请随时贡献。
依赖关系
~6–15MB
~175K SLoC