git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Bert Wesarg <bert.wesarg@googlemail.com>
To: Petr Baudis <pasky@suse.cz>
Cc: Bert Wesarg <bert.wesarg@googlemail.com>, git@vger.kernel.org
Subject: [TopGit PATCH v2] tg-create.sh: Support for multiple {to,cc,bcc} options
Date: Sat,  9 Aug 2008 20:48:56 +0200	[thread overview]
Message-ID: <1218307736-24891-1-git-send-email-bert.wesarg@googlemail.com> (raw)

Git config supports multiple values for the same config key, so support it
for these TopGit config options, too.

New in v2:
Print a RFC2822 compliant header.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>

---
 tg-create.sh |   35 ++++++++++++++++++++++++++++++++---
 1 files changed, 32 insertions(+), 3 deletions(-)

diff --git a/tg-create.sh b/tg-create.sh
index 6cce7ed..d7ee1d2 100644
--- a/tg-create.sh
+++ b/tg-create.sh
@@ -100,13 +100,42 @@ git checkout -b "$name"
 echo "$deps" | sed 's/ /\n/g' >"$root_dir/.topdeps"
 git add "$root_dir/.topdeps"
 
+# Print a RFC2822 compliant header ($2) with values from the config option
+# ($1 without the topgit. prefix)
+get_multi_config()
+{
+	# Do we need to escape it for awk double quotes?
+	prefix="$2"
+	prefix_align="$(printf "%*s  " "${#2}" "")"
+
+	git config --get-all topgit.$1 |
+		awk '
+			BEGIN {
+				line = ""
+				prefix = "'"$prefix"': "
+			}
+				{
+					if (line != "") {
+						print prefix line ","
+						prefix = "'"$prefix_align"'"
+					}
+					line = $0
+				}
+			END {
+				if (line != "") {
+					print prefix line
+				}
+			}
+		'
+}
+
 author="$(git var GIT_AUTHOR_IDENT)"
 author_addr="${author%> *}>"
 {
 	echo "From: $author_addr"
-	! header="$(git config topgit.to)" || echo "To: $header"
-	! header="$(git config topgit.cc)" || echo "Cc: $header"
-	! header="$(git config topgit.bcc)" || echo "Bcc: $header"
+	get_multi_config to  "To"
+	get_multi_config cc  "Cc"
+	get_multi_config bcc "Bcc"
 	! subject_prefix="$(git config topgit.subjectprefix)" || subject_prefix="$subject_prefix "
 	echo "Subject: [${subject_prefix}PATCH] $name"
 	echo
-- 
tg: (2e5b885..) t/support-for-multiple-to-cc-bcc-options (depends on: master)

             reply	other threads:[~2008-08-09 18:50 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-09 18:48 Bert Wesarg [this message]
2008-08-11 20:47 ` [TopGit PATCH v2] tg-create.sh: Support for multiple {to,cc,bcc} options Petr Baudis
2008-08-12  5:14   ` Bert Wesarg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1218307736-24891-1-git-send-email-bert.wesarg@googlemail.com \
    --to=bert.wesarg@googlemail.com \
    --cc=git@vger.kernel.org \
    --cc=pasky@suse.cz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).