Archived
1
0

6 Commits
0.0.5 ... dev

Author SHA1 Message Date
f938fd4d5b Add startall and stopall 2025-08-24 19:40:37 +02:00
759e7412c3 Add startall and stopall 2025-08-24 19:36:55 +02:00
1dfd3f090f Add status command 2025-08-24 05:08:13 +02:00
98542abb36 Add status command 2025-08-24 05:05:02 +02:00
412744520e Add status command 2025-08-24 04:41:17 +02:00
b95b557fc1 Update show Help 2025-08-24 04:08:11 +02:00
2 changed files with 48 additions and 9 deletions

View File

@@ -1,14 +1,17 @@
#!/bin/bash
function showHelp() {
echo "ssh-proxy [args] command proxy"
echo "ssh-proxy [args] command cmd_args"
echo ""
echo "args :"
echo " --help Show help"
echo "command;"
echo "command :"
echo " status"
echo " start profile|port target"
echo " stop port"
echo "proxy:"
echo " startall"
echo " stopall"
echo "cmd_args :"
echo " profile Name of the profile (~/.config/ssh-proxy/*)"
echo " port Proxy local port (1024-65535)"
echo " target Proxy target [user@]server[:port]"
@@ -23,16 +26,31 @@ case ${1} in
showHelp
exit 0
;;
"start" | "stop");;
"status" | "startall" | "stopall");;
"start" | "stop")
if [ "${2}" == "" ] || [[ "${2}" == */* ]]; then
showHelp
exit 1
fi
;;
*)
showHelp
exit 1
;;
esac
if [ "${2}" == "" ] || [[ "${2}" == */* ]]; then
showHelp
exit 1
function showProxyStatus() {
if [ -d /tmp/ssh-proxy-"${USER}" ] && [ "$(find /tmp/ssh-proxy-"${USER}" -maxdepth 0 -empty -exec echo 1 \;)" == "" ]; then
echo -e "Port\tProxy"
for FILE in /tmp/ssh-proxy-"${USER}"/*; do
PORT=$(basename "${FILE}")
PROXY=$(grep 'PROXY=' "${FILE}" | sed 's/PROXY=//')
echo -e "${PORT}\t${PROXY}"
done
else
echo "No open proxy"
fi
}
function startProxy() {
LOCAL_PORT=0
@@ -117,6 +135,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}"
}
@@ -134,8 +153,25 @@ function stopProxy() {
rm "${TMP_FILE}"
}
function startAll() {
for FILE in ~/.config/ssh-proxy/*; do
PROFILE=$(basename "${FILE}")
startProxy "${PROFILE}"
done
}
function stopAll() {
for FILE in /tmp/ssh-proxy-"${USER}"/*; do
PORT=$(basename "${FILE}")
stopProxy "${PORT}"
done
}
case ${1} in
"status") showProxyStatus;;
"start") startProxy "${2}" "${3}";;
"stop") stopProxy "${2}";;
"startall") startAll;;
"stopall") stopAll;;
*) exit 1;;
esac

View File

@@ -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 startall stopall"
local -r cnfargs="--help"
local profiledir=~/.config/ssh-proxy
local tempdir="/tmp/ssh-proxy-${USER}"
@@ -30,6 +30,9 @@ _ssh-proxy() {
--help)
return
;;
status | startall | stopall)
return
;;
start)
local -r PROFILELIST=$(\ls ${profiledir})
# shellcheck disable=SC2207