From 4a5b97a865f614b4aebf93a2d04bb6616c7d864d Mon Sep 17 00:00:00 2001 From: Hugues Hiegel Date: Fri, 30 Jan 2009 16:39:25 +0100 Subject: [PROMPT] SSH agent key listing, and GnuPG agent better managment --- 12_Prompts.zsh | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) (limited to '12_Prompts.zsh') diff --git a/12_Prompts.zsh b/12_Prompts.zsh index 8a8d5d1..364c22c 100644 --- a/12_Prompts.zsh +++ b/12_Prompts.zsh @@ -111,16 +111,26 @@ update_prompt() AGENTS="" if [ "$SSH_AGENT_PID" -gt 0 -a -e /proc/$SSH_AGENT_PID/cmdline ] then - [ "`strings /proc/$SSH_AGENT_PID/cmdline | head -n1`" = "ssh-agent" ] && \ - AGENTS=$C_$prompt_colors[agents]$_C"★" + if [ "`strings /proc/$SSH_AGENT_PID/cmdline | head -n1`" = "ssh-agent" ] + then + ## We have a running ssh agent + # get list of keys + if [ "$( ssh-add -l | grep "^[[:digit:]]\+ \([[:digit:]a-f]\{2\}:\)\{15\}[[:digit:]a-f]\{2\} .* (.*)$" )" != "" ] + then + AGENTCOLOR="has_keys" + else + AGENTCOLOR="empty" + fi + AGENTS=$C_$agent_colors[$AGENTCOLOR]$_C"★" + fi fi - if [ "$GPG_AGENT_INFO" != "" ] + GPG_AGENT_PID="$(echo $GPG_AGENT_INFO | cut -d: -f2)" + if [ "$GPG_AGENT_PID" != "" -a -e /proc/$GPG_AGENT_PID/cmdline ] then - GPG_AGENT_PID="$(echo $GPG_AGENT_INFO | cut -d: -f2)" - if [ -e /proc/$GPG_AGENT_PID/cmdline ] + if [ "`strings /proc/$GPG_AGENT_PID/cmdline | head -n1`" = "gpg-agent" ] then - [ "`strings /proc/$GPG_AGENT_PID/cmdline | head -n1`" = "gpg-agent" ] && \ - AGENTS=$AGENTS$C_$prompt_colors[agents]$_C"☆" + AGENTCOLOR="has_keys" + AGENTS=$AGENTS$C_$agent_colors[$AGENTCOLOR]$_C"☆" fi fi AGENTS=${AGENTS:+$SEPARATOR$AGENTS} -- cgit v1.2.3