diff --git a/bin/ssh-proxy b/bin/ssh-proxy index 087a225..2473cbc 100755 --- a/bin/ssh-proxy +++ b/bin/ssh-proxy @@ -24,16 +24,28 @@ case ${1} in showHelp exit 0 ;; - "start" | "stop");; + "status");; + "start" | "stop") + if [ "${2}" == "" ] || [[ "${2}" == */* ]]; then + showHelp + exit 1 + fi + ;; *) showHelp exit 1 ;; esac -if [ "${2}" == "" ] || [[ "${2}" == */* ]]; then - showHelp - exit 1 -fi + +function showProxyStatus() { + echo -e "Port\tProxy" + echo "" + for FILE in /tmp/ssh-proxy-"${USER}"/*; do + PORT=$(basename "${FILE}") + PROXY=$(grep 'PROXY=' "${FILE}" | sed 's/PROXY=//') + echo -e "${PORT}\t${PROXY}" + done +} function startProxy() { LOCAL_PORT=0 @@ -118,6 +130,7 @@ function startProxy() { #echo "PROXY_USER=${PROXY_USER}" #echo "PROXY_SERVER=${PROXY_SERVER}" #echo "PROXY_SERVER_PORT=${PROXY_SERVER_PORT}" + echo "PROXY=${PROXY_ADDRESS}" echo "PID=${PID}" } > "${TMP_FILE}" } @@ -136,6 +149,7 @@ function stopProxy() { } case ${1} in + "status") showProxyStatus;; "start") startProxy "${2}" "${3}";; "stop") stopProxy "${2}";; *) exit 1;; diff --git a/completion/bash/ssh-proxy b/completion/bash/ssh-proxy index 9130d9f..4f4ab5b 100644 --- a/completion/bash/ssh-proxy +++ b/completion/bash/ssh-proxy @@ -5,7 +5,7 @@ _ssh-proxy() { local cur prev words cword args _init_completion || return - local -r cmdargs="start stop" + local -r cmdargs="status start stop" local -r cnfargs="--help" local profiledir=~/.config/ssh-proxy local tempdir="/tmp/ssh-proxy-${USER}" @@ -30,6 +30,9 @@ _ssh-proxy() { --help) return ;; + status) + return + ;; start) local -r PROFILELIST=$(\ls ${profiledir}) # shellcheck disable=SC2207