linux-imx/scripts/get_maintainer_nxp.sh
Dong Aisheng 29594c4e55 LF-2358-1 script: add get_maintainer_nxp.sh and MAITAINERS.NXP
get_maintainer_nxp.sh is a wrapper of in-kernel get_maintainter.pl
which aims to help the team member to easily get the maintainer
for patch review process. And the script uses its own maintainer
file MAITAINERS.NXP.

This script is moved from LF auto script.

Reviewed-by: Ting Liu <aisheng.dong@nxp.com>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
2021-11-02 17:12:30 +08:00

113 lines
3.7 KiB
Bash
Executable File

#!/bin/bash
V=${V:=false}
scriptName=${0##*/}
scriptDir="$(dirname $(readlink -f $0))"
mfile=$scriptDir/../MAINTAINERS.NXP
pl_script="./scripts/get_maintainer.pl"
maillist="\
linux-devel@linux.nxdi.nxp.com (Linux Factory Review List)
lnxrevli@nxp.com (i.MX Review List)"
usage() {
cat <<EOF
Wrapper script for kernel get_maintainer.pl
Usage: $0 [options] patchfile
$0 [options] -f file|directory
Options:
-s,--sendemail => send patch to maintainers for review
--from=<address> => email sender
--to=<address>,... => primary email recipient
--cc=<address>,... => additional email recipient
--confirm=<mode> => confirm just before sending (default: always)
--help => show this help information
Run "$pl_script -h" to get all other supported options.
EOF
}
args="$@"
# check -h and --help options
if [ -n "`echo $args |awk '/(^| )(-h|--help)( |$)/'`" ];then
usage
exit
fi
# filter out --sendemail arguments
sendemail=false
if echo $args |grep -Eq '(^| )(\-s|\-\-sendemail)( |$)';then
sendemail=true
$V && echo "Sendemail: $sendemail"
args="`echo $args |sed -r 's,(^| )(-s|--sendemail)( |$), ,g'`"
fi
# filter out --from arguments
email_from=""
if echo $args |grep -Eq '\-\-from[ =]*[^ ]+';then
email_from="`echo $args |sed 's,--from[ =]*[^ ]*,\n&,g;s,[^\n]*\n\(--from[ =]*[^ ]*\)[^\n]*,\1 ,g;s/.$//'`"
$V && echo "From: `echo $email_from |sed 's,--from[ =]*,,g'`"
args="`echo $args |sed -e 's,--from[ =]*[^ ]*,,g'`"
fi
# filter out --to arguments
email_to=""
if echo $args |grep -Eq '\-\-to[ =]*[^ ]+';then
email_to="`echo $args |sed 's,--to[ =]*[^ ]*,\n&,g;s,[^\n]*\n\(--to[ =]*[^ ]*\)[^\n]*,\1 ,g;s/.$//'`"
$V && echo "To: `echo $email_to |sed 's,--to[ =]*,,g'`"
args="`echo $args |sed -e 's,--to[ =]*[^ ]*,,g'`"
fi
# filter out --cc arguments
email_cc=""
if echo $args |grep -Eq '\-\-cc[ =]*[^ ]+';then
email_cc="`echo $args |sed 's,--cc[ =]*[^ ]*,\n&,g;s,[^\n]*\n\(--cc[ =]*[^ ]*\)[^\n]*,\1 ,g;s/.$//'`"
$V && echo "Cc: `echo $email_cc |sed 's,--cc[ =]*,,g'`"
args="`echo $args |sed -e 's,--cc[ =]*[^ ]*,,g'`"
fi
# filter out --confirm arguments
email_confirm="--confirm=always"
if echo $args |grep -Eq '\-\-confirm[ =]*[^ ]+';then
email_confirm="`echo $args |sed 's,--confirm[ =]*[^ ]*,\n&,g;s,[^\n]*\n\(--confirm[ =]*[^ ]*\)[^\n]*,\1 ,g;s/.$//'`"
$V && echo "Confirm: `echo $email_confirm |sed 's,--confirm[ =]*,,g'`"
args="`echo $args |sed -e 's,--confirm[ =]*[^ ]*,,g'`"
fi
# remaining arguments to get_maintainer.pl
$V && echo "Arguments: $args"
# customized options to get_maintainer.pl
opts="--n --rolestats"
# filters for emails
filter="/@/{/@[^@]*(nxp.com|nxp1.onmicrosoft.com)/I!d;}"
perl $pl_script $opts --mpath $mfile $args |sed -r "$filter"
echo "$maillist"
echo
if $sendemail;then
opts="--no-n --no-rolestats"
emails="`perl $pl_script $opts --mpath $mfile $args |sed -r "$filter"`"
emails="`echo $emails |sed -r 's,^[ \t]*,,;s,[ \t]*$,,;s/[ \t]+/,/g'`"
$V && echo "Maintainers: $emails"
# get patch files
for arg in $args;do
$V && echo $arg
if [ -e "$arg" ] && [ -z "`git ls-files $arg`" ];then
patches="$patches $arg"
fi
done
$V && echo "Patches: $patches"
if [ -z "$patches" ];then
echo "Error: no patch file found."
exit
fi
# display email sending command first in case users want to modify
echo git send-email --no-chain-reply-to --no-signed-off-by-cc --quiet --suppress-cc=all $email_confirm $email_from --to=$emails $email_to $email_cc --cc=linux-devel@linux.nxdi.nxp.com,lnxrevli@nxp.com $patches
git send-email --no-chain-reply-to --no-signed-off-by-cc --quiet --suppress-cc=all $email_confirm $email_from --to=$emails $email_to $email_cc --cc=linux-devel@linux.nxdi.nxp.com,lnxrevli@nxp.com $patches
fi