lkml.org 
[lkml]   [2019]   [Nov]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH] scripts: helper for mailing patches from git to the maintainers
Date
This is a little helper script for mailing patches out of a git
branch to the corresponding maintainers.

Essentially, it scans the touched files, asks get_maintainer.pl
for their maintainers and calls git-send-email for mailing out
the patches.

Syntax:

./scripts/git-send-patch <ref> [<optional git-send-email args>]

Examples:

./scripts/git-send-patch HEAD^
./scripts/git-send-patch linus/master --dry-run

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
---
MAINTAINERS | 5 ++++
scripts/git-send-patch | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 67 insertions(+)
create mode 100755 scripts/git-send-patch

diff --git a/MAINTAINERS b/MAINTAINERS
index e4f170d8bc29..b47973c922d0 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -6929,6 +6929,11 @@ F: Documentation/filesystems/gfs2*.txt
F: fs/gfs2/
F: include/uapi/linux/gfs2_ondisk.h

+GIT_SEND_PATCH SCRIPT
+M: Enrico Weigelt, metux IT consult <info@metux.net>
+F: scripts/git-send-patch
+S: Maintained
+
GNSS SUBSYSTEM
M: Johan Hovold <johan@kernel.org>
T: git git://git.kernel.org/pub/scm/linux/kernel/git/johan/gnss.git
diff --git a/scripts/git-send-patch b/scripts/git-send-patch
new file mode 100755
index 000000000000..b54790fd1cc1
--- /dev/null
+++ b/scripts/git-send-patch
@@ -0,0 +1,62 @@
+#!/bin/bash
+# SPDX-License-Identifier: GPL-2.0
+
+[ -x "$GIT" ] || export GIT=git
+[ -d "$KERNELSRC" ] || export KERNELSRC=.
+
+LKML="linux-kernel@vger.kernel.org"
+
+check_ksrc() {
+ if [ -d $KERNELSRC/arch ] && \
+ [ -d $KERNELSRC/block ] && \
+ [ -d $KERNELSRC/init ] && \
+ [ -d $KERNELSRC/kernel ] && \
+ [ -d $KERNELSRC/sound ] && \
+ [ -d $KERNELSRC/drivers ] && \
+ [ -d $KERNELSRC/net ] && \
+ [ -d $KERNELSRC/include ] && \
+ [ -f $KERNELSRC/COPYING ] && \
+ [ -f $KERNELSRC/MAINTAINERS ] && \
+ [ -f $KERNELSRC/CREDITS ] && \
+ [ -f $KERNELSRC/Kconfig ] && \
+ [ -f $KERNELSRC/Makefile ]; then
+ return 0
+ else
+ echo "$0: cant find the kernel source tree. please call me from the topdir" >&2
+ exit 1
+ fi
+}
+
+check_ksrc
+
+get_files() {
+ $GIT diff --name-only "$REF"
+}
+
+get_maintainers() {
+ $KERNELSRC/scripts/get_maintainer.pl --m --l --remove-duplicates `get_files` |
+ grep -v "$LKML" | \
+ grep -E "(maintainer|reviewer|open list)" | \
+ grep -o '[[:alnum:]+\.\_\-]*@[[:alnum:]+\.\_\-]*'
+}
+
+construct_params() {
+ echo -n "--to=$LKML "
+ for a in `get_maintainers`; do
+ echo -n "--cc=$a "
+ done
+}
+
+if [ ! "$1" ]; then
+ echo "$0: missing git revision to send out" >&2
+ echo "" >&2
+ echo "for example: 'HEAD^' for sending just the last patch" >&2
+ echo >&2
+ echo "$0 <git-ref> [<extra params for git-send-mail>]"
+ exit 1
+fi
+
+REF="$1"
+shift
+
+$GIT send-email `construct_params` "$REF" "$@"
--
2.11.0
\
 
 \ /
  Last update: 2019-11-21 14:36    [W:0.036 / U:0.900 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site