[TopGit PATCH 1/2] Factor out the template generation for the .topmsg file
Provide a function for the .topmsg template file.
Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
---
tg-create.sh | 29 ++---------------------------
tg.sh | 30 ++++++++++++++++++++++++++++++
2 files changed, 32 insertions(+), 27 deletions(-)
diff --git a/tg-create.sh b/tg-create.sh
index d47959b..e30a014 100644
--- a/tg-create.sh
+++ b/tg-create.sh
@@ -100,33 +100,8 @@ git checkout -b "$name"
echo "$deps" | sed 's/ /\n/g' >"$root_dir/.topdeps"
git add "$root_dir/.topdeps"
-# Print each config value for a key ($1, without "topgit." prefix)
-# with the given prefix ($2)
-get_multi_config()
-{
- # escape any / in prefix for sed
- prefix="$(echo "$2" | sed -e 's/\//\\\\\//g')"
-
- git config --get-all topgit.$1 2>/dev/null |
- sed -e "s/^/$prefix /g"
-}
-
-author="$(git var GIT_AUTHOR_IDENT)"
-author_addr="${author%> *}>"
-{
- echo "From: $author_addr"
- 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
- cat <<EOT
-<patch description>
-
-Signed-off-by: $author_addr
-EOT
-} >"$root_dir/.topmsg"
+echo "<patch description>" |
+ make_topmsg "$name" >"$root_dir/.topmsg"
git add "$root_dir/.topmsg"
diff --git a/tg.sh b/tg.sh
index 03a392b..8384b79 100644
--- a/tg.sh
+++ b/tg.sh
@@ -148,6 +148,36 @@ switch_to_base()
git symbolic-ref HEAD "$_base"
}
+# Print each config value for a key ($1, without "topgit." prefix)
+# with the given prefix ($2)
+get_multi_config()
+{
+ # escape any / in prefix for sed
+ prefix="$(echo "$2" | sed -e 's/\//\\\\\//g')"
+
+ git config --get-all topgit.$1 2>/dev/null |
+ sed -e "s/^/$prefix /g"
+}
+
+# Make initial .topmsg template with content from stdin
+# optional first argument is subject line
+make_topmsg()
+{
+ author="$(git var GIT_AUTHOR_IDENT)"
+ author_addr="${author%> *}>"
+
+ echo "From: $author_addr"
+ 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] $1"
+ echo
+ cat
+ echo
+ echo "Signed-off-by: $author_addr"
+}
+
# Show the help messages.
do_help()
{
--
tg: (2a28314..) t/make-.topmsg-gen-a-function (depends on: t/support-for-multiple-to-cc-bcc-options)