From f281705dd58f0bfa29ccad928b8ee8d7331ae526 Mon Sep 17 00:00:00 2001 From: Bert Wesarg Date: Sat, 9 Oct 2010 22:52:19 +0200 Subject: [PATCH] tg-mail: accept -i/-w Signed-off-by: Bert Wesarg --- README | 4 ++++ contrib/tg-completion.bash | 8 ++++++++ tg-mail.sh | 12 +++++++++--- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/README b/README index fa9d63f..b9b93ef 100644 --- a/README +++ b/README @@ -323,6 +323,10 @@ tg mail to let `git send-email` ask for confirmation before sending any mail. + Options: + -i base patch generation on index instead of branch + -w base patch generation on working tree instead of branch + TODO: 'tg mail patchfile' to mail an already exported patch TODO: mailing patch series TODO: specifying additional options and addresses on command diff --git a/contrib/tg-completion.bash b/contrib/tg-completion.bash index eff85ee..ddc7655 100755 --- a/contrib/tg-completion.bash +++ b/contrib/tg-completion.bash @@ -359,6 +359,14 @@ _tg_mail () local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in + -*) + __tgcomp " + -i + -w + -s + -r + " + ;; *) __tgcomp "$(__tg_topics)" esac diff --git a/tg-mail.sh b/tg-mail.sh index dd4a95a..17ce02c 100644 --- a/tg-mail.sh +++ b/tg-mail.sh @@ -3,6 +3,7 @@ # GPLv2 name= +head_from= send_email_args= in_reply_to= @@ -12,12 +13,15 @@ in_reply_to= while [ -n "$1" ]; do arg="$1"; shift case "$arg" in + -i|-w) + [ -z "$head_from" ] || die "-i and -w are mutually exclusive" + head_from="$arg";; -s) send_email_args="$1"; shift;; -r) in_reply_to="$1"; shift;; -*) - echo "Usage: tg [...] mail [-s SEND_EMAIL_ARGS] [-r REFERENCE_MSGID] [NAME]" >&2 + echo "Usage: tg [...] mail [-s SEND_EMAIL_ARGS] [-r REFERENCE_MSGID] [-i | -w] [NAME]" >&2 exit 1;; *) [ -z "$name" ] || die "name already specified ($name)" @@ -25,7 +29,8 @@ while [ -n "$1" ]; do esac done -[ -n "$name" ] || name="$(git symbolic-ref HEAD | sed 's#^refs/heads/##')" +head="$(git symbolic-ref HEAD | sed 's#^refs/heads/##')" +[ -n "$name" ] || name="$head" base_rev="$(git rev-parse --short --verify "refs/top-bases/$name" 2>/dev/null)" || die "not a TopGit-controlled branch" @@ -36,7 +41,8 @@ fi patchfile="$(get_temp tg-mail)" -$tg patch "$name" >"$patchfile" +# let tg patch sort out whether $head_from makes sense for $name +$tg patch "$name" $head_from >"$patchfile" header="$(sed -e '/^$/,$d' -e "s,','\\\\'',g" "$patchfile")" -- 2.30.2