-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathssh_agent.fish
More file actions
60 lines (51 loc) · 1.28 KB
/
ssh_agent.fish
File metadata and controls
60 lines (51 loc) · 1.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# SYNOPSIS
# ssh_agent [options]
#
# USAGE
# Options
#
setenv SSH_ENV $HOME/.ssh/environment
function uninstall --on-event uninstall_ssh_agent
end
function start_agent
if [ -n "$SSH_AGENT_PID" ]
ps -ef | grep $SSH_AGENT_PID | grep ssh-agent > /dev/null
if [ $status -eq 0 ]
test_identities
end
else
if [ -f $SSH_ENV ]
. $SSH_ENV > /dev/null
end
ps -ef | grep $SSH_AGENT_PID | grep -v grep | grep ssh-agent > /dev/null
if [ $status -eq 0 ]
test_identities
else
echo "Initializing new SSH agent ..."
ssh-agent -c | sed 's/^echo/#echo/' > $SSH_ENV
echo "succeeded"
chmod 600 $SSH_ENV
. $SSH_ENV > /dev/null
ssh-add
end
end
end
function test_identities
ssh-add -l | grep "The agent has no identities" > /dev/null
if [ $status -eq 0 ]
ssh-add
if [ $status -eq 2 ]
start_agent
end
end
end
function fish_title
if [ $_ = 'fish' ]
echo (prompt_pwd)
else
echo $_
end
end
function init --on-event init_ssh_agent
test_identities
end