summaryrefslogtreecommitdiffstats
path: root/with-ssh
blob: 0419ac9becbf2942ef0fbfeb584419cf69f08cee (plain)
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
#! /bin/sh
#
# usage: with-ssh [--add[=KEY] ...] [COMMAND [ARGS ...]]
#
exec ssh-agent /bin/sh -eufc '
main() {
  if test $# = 0; then
    set -- "$SHELL"
  fi
  case "$1" in
    --add)
      shift
      ssh-add
      main "$@"
      ;;
    --add=*)
      key=$1; shift
      key=${key#--add=}
      ssh-add "$key"
      main "$@"
      ;;
    *)
      # lol @ parallel
      ## Do not exec here because parallel will hang
      #"$@"
      #exit
      exec "$@"
  esac
}
main "$@"
' -- "$@"