[TopGit PATCH v2] tg-create.sh: Support for multiple {to,cc,bcc} options

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxx>

---
 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)
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux