summaryrefslogtreecommitdiffstats
path: root/services/bin/services
blob: e854cbcb0d35fd74ca81cd4a30b08aec31b33258 (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
32
33
#! /bin/sh
# usage: services [user@]hostname[:port]
# environment:
#   services_identity_file  path to ssh(1) identity_file
set -euf

user=services
hostname=${1-localhost}
port=1337

options="${options+$options }-o ControlMaster=no"

if test -n "${services_identity_file-}"; then
  options="${options+$options }-i $services_identity_file"
fi

if echo $hostname | grep -q @; then
  user=`echo $hostname | cut -d@ -f1`
  hostname=`echo $hostname | cut -d@ -f2`
fi
if echo $hostname | grep -q :; then
  port=`echo $hostname | cut -d: -f2`
  hostname=`echo $hostname | cut -d: -f1`
fi

exec 3>&1
{
  ssh $options $user@$hostname -p $port
} 2>&1 1>&3 | sed '
  /^Connection to '$hostname' closed/d
  /^Shared connection to '$hostname' closed/d
'
exec 3>&-