[poky] [PATCH] send-pull-request: ensure a proper FROM header is included
Saul Wold
saul.wold at intel.com
Wed Jan 26 16:04:18 PST 2011
On 01/26/2011 09:52 AM, Darren Hart wrote:
> From: Darren Hart<dvhart at linux.intel.com>
>
> Pull URL: git://git.pokylinux.org/poky-contrib.git
> Branch: dvhart/git-pull
> Browse: http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=dvhart/git-pull
>
> Thanks,
> Darren Hart<dvhart at linux.intel.com>
>
> Commit 94629f2521711055b412f954af19e48b9bda6e50 removes the FROM header when
> sending via sendmail to avoid sending mail as the original change committer (as
> opposed to the local user). This resulted in mail going out without any FROM
> header, which some mailing lists correct by adding the *bounce address as the
> FROM.
>
> Correct this by reading FROM from the environment, from a new -f argument, or
> from the git user.name and user.email config settings, in that order of
> preference. Also display the FROM that will be used prior to the send
> confirmation.
>
> This has no effect if the -g (send via git) argument is specified, other than
> printing the git sendemail.from config setting.
>
> Signed-off-by: Darren Hart<dvhart at linux.intel.com>
> Reported-by: Saul Wold<saul.wold at intel.com>
> ---
> scripts/send-pull-request | 29 ++++++++++++++++++++++++++---
> 1 files changed, 26 insertions(+), 3 deletions(-)
>
> diff --git a/scripts/send-pull-request b/scripts/send-pull-request
> index c08b3be..7f51a1b 100755
> --- a/scripts/send-pull-request
> +++ b/scripts/send-pull-request
> @@ -9,6 +9,7 @@ fi
> # Prevent environment leakage to these vars.
> unset TO
> unset CC
> +# allow the user to set FROM in the environment
>
> usage()
> {
> @@ -17,6 +18,9 @@ Usage: $(basename $0) [-h] [-a] [[-t email]...] -p pull-dir
> -t email Explicitly add email to the recipients
> -a Automatically harvest recipients from "*-by: email" lines
> in the patches in the pull-dir
> + -f Specify a FROM address, you can also use the FROM environment
> + variable. If you do not specify one, it will try to use the one
> + from your git config. This is ignored if -g is used.
> -g Use git-send-email to send mail instead of sendmail
> -p pull-dir Directory containing summary and patch files
> EOM
> @@ -45,11 +49,14 @@ harvest_recipients()
>
>
> # Parse and verify arguments
> -while getopts "aghp:t:" OPT; do
> +while getopts "af:ghp:t:" OPT; do
> case $OPT in
> a)
> AUTO=1
> ;;
> + f)
> + FROM="$OPTARG"
> + ;;
> g)
> PULL_MTA="git"
> ;;
> @@ -108,13 +115,29 @@ if [ -z "$TO" ]&& [ -z "$CC" ]; then
> exit 1
> fi
>
> +case "$PULL_MTA" in
> + git)
> + FROM="$(git config sendemail.from)"
> + ;;
> + sendmail)
> + if [ -z "$FROM" ]; then
> + FROM="$(git config user.name)<$(git config user.email)>"
> + if [ -z "$FROM" ]; then
> + echo "ERROR: unable to determine a FROM address"
> + usage
> + exit 1
> + fi
> + fi
> + ;;
> +esac
>
> # Generate report for the user and require confirmation before sending
> cat<<EOM
> The following patches:
> $(for PATCH in $PDIR/*.patch; do echo " $PATCH"; done)
>
> -will be sent to the following recipients:
> +will be sent with the following headers:
> + From: $FROM
> To: $TO
> CC: $CC
>
> @@ -155,7 +178,7 @@ if [ "$cont" == "y" ] || [ "$cont" == "Y" ]; then
> # original date as "Old-Date".
> DATE=$(date +"%a, %d %b %Y %k:%M:%S %z")
> GIT_FROM=$(cat $PATCH | formail -X "From:")
> - cat $PATCH | formail -I "To: $TO" -I "CC: $CC" -I "From:" -i "Date: $DATE" | sed "0,/^$/s/^$/\n$GIT_FROM\n/" | tail -n +2 | sendmail -t
> + cat $PATCH | formail -I "To: $TO" -I "CC: $CC" -I "From: $FROM" -i "Date: $DATE" | sed "0,/^$/s/^$/\n$GIT_FROM\n/" | tail -n +2 | sendmail -t
> if [ $? -eq 1 ]; then
> ERROR=1
> fi
Pushed into master
Thanks for the quick fix
Sau!
More information about the poky
mailing list