#!/usr/bin/env bash

# Dynamically determines if the ssh connection
# is to be proxied through `proxytunnel`
# To be used with ssh_config ProxyCommand

host="$1"
port="$2"

if [ -z "$http_proxy" ]; then
    socat "TCP:$host:$port" -
else
    proxy=$(echo "$http_proxy" | sed 's/^https\?:\/\///' | sed 's/\/$//')
    port=443 # Most won't want this
    echo "$proxy" | grep '@'
    if [ $? == 0 ]; then
        user=$(echo $proxy | cut -d '@' -f 2)
        proxy=$(echo $proxy | cut -d '@' -f 1)
        proxytunnel -p $proxy -P $user -d $host:$port
    else
        proxytunnel -p $proxy -d $host:$port
    fi
fi