aboutsummaryrefslogtreecommitdiff
path: root/bash/agents.sh
blob: 4428163b2f0b4bfe1141a4deb02229061e5e9d7a (plain) (blame)
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
#!/usr/bin/env bash
# shellcheck disable=SC2015
# shellcheck disable=SC1090

GPG_TTY=$(tty)
export GPG_TTY

export SSH_ENV="$HOME/.ssh/environment"
start_agent() {
  echo "Initialising new SSH agent..."
  ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
  echo succeeded
  chmod 600 "${SSH_ENV}"
  . "${SSH_ENV}" > /dev/null
  ssh-add
}

[ -f "${SSH_ENV}" ] && {
  . "${SSH_ENV}" > /dev/null
  pgrep ^ssh-agent$ > /dev/null || {
    start_agent
  }
} || start_agent

eval "$(direnv hook bash)"