git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v3 2/2] completion: add support for completing email aliases

From
Jacob Keller <jacob.e.keller@intel.com>
Date
Nov 17, 2015, 00:29 UTC
Message-ID
<1447720166-9941-2-git-send-email-jacob.e.keller@intel.com>
In-Reply-To
<1447720166-9941-1-git-send-email-jacob.e.keller@intel.com>
From: Jacob Keller <jacob.keller@gmail.com>

Using the new --dump-alias-names option from git-send-email, add completion for --to, --cc, and --bcc with the available configured aliases.

Signed-off-by: Jacob Keller <jacob.keller@gmail.com>
---
Notes:
    - v2
    * Use git-send-email for parsing instead of re-implementing it in awk
    
    - v3
    * update for change to git-send-email
    * add support for "--from"
 contrib/completion/git-completion.bash | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 482ca84b451b..1de8c0e6fc96 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -10,6 +10,7 @@
 #    *) local and remote tag names
 #    *) .git/remotes file names
 #    *) git 'subcommands'
+#    *) git email aliases for git-send-email
 #    *) tree paths within 'ref:path/to/file' expressions
 #    *) file paths within current working directory and index
 #    *) common --long-options
@@ -1709,8 +1710,25 @@ _git_reflog ()
 __git_send_email_confirm_options="always never auto cc compose"
 __git_send_email_suppresscc_options="author self cc bodycc sob cccmd body all"
 
+__git_get_email_aliases ()
+{
+	git --git-dir="$(__gitdir)" send-email --dump-aliases 2>/dev/null | while read alias expansion
+	do
+		echo $alias
+	done
+}
+
 _git_send_email ()
 {
+	case "$prev" in
+	--to|--cc|--bcc|--from)
+		__gitcomp "
+		$(__git_get_email_aliases)
+		" "" ""
+		return
+		;;
+	esac
+
 	case "$cur" in
 	--confirm=*)
 		__gitcomp "
@@ -1735,6 +1753,12 @@ _git_send_email ()
 			" "" "${cur##--thread=}"
 		return
 		;;
+	--to=*|--cc=*|--bcc=*|--from=*)
+		__gitcomp "
+		$(__git_get_email_aliases)
+		" "" "${cur#--*=}"
+		return
+		;;
 	--*)
 		__gitcomp "--annotate --bcc --cc --cc-cmd --chain-reply-to
 			--compose --confirm= --dry-run --envelope-sender
-- 
2.6.3.491.g3e3f6ce
Previous: Jacob KellerNext: Eric Sunshine
Message 2 of 5 in “sendemail: teach git-send-email to dump alias names”
  1. 1/2 sendemail: teach git-send-email to dump alias namesJacob Keller, Nov 17, 2015
  2. 2/2 completion: add support for completing email aliasesJacob Keller, Nov 17, 2015
  3. Eric SunshineNov 17, 2015
  4. Eric SunshineNov 17, 2015
  5. Jacob KellerNov 17, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.