#!/bin/bash if [ "$#" == "0" ]; then echo "Usage: $0 [ ]" echo " $0 :[:] ..." exit 1 fi; ARGUMENTS=() IPTABLES_RULES=() while (( "$#" )); do if [[ "$1" =~ ":" ]]; then OIFS=$IFS IFS=':' read -r -a array <<< "$1" HOSTNAME=${array[0]} PORT=${array[1]} LOCAL_PORT=${array[2]} IFS=$OIFS shift else HOSTNAME=$1 shift PORT=$1 shift LOCAL_PORT=$1 shift fi if [ -z "$LOCAL_PORT" ]; then LOCAL_PORT=$PORT fi if [ -n "$PORT" ]; then ARGUMENTS+=( "-p $LOCAL_PORT:$PORT" ) echo "Forwarding $HOSTNAME:$PORT to local port $LOCAL_PORT..." fi IPTABLES_RULES+=( "$HOSTNAME" ) IPTABLES_RULES+=( "$PORT" ) done ARGUMENTS+=( "--cap-add=NET_ADMIN" ) if [ -n "$VPN_USER" ]; then ARGUMENTS+=( "-e VPN_USER=$VPN_USER" ) fi if [ -n "$VPN_PWD" ]; then ARGUMENTS+=( "-e VPN_PWD=$VPN_PWD" ) fi ARGUMENTS+=( "--rm --name seal-vpn -ti plossys/barracuda connect ${IPTABLES_RULES[*]}" ) docker run ${ARGUMENTS[*]}