Add forward-local-port
This commit is contained in:
parent
fe6716c2f0
commit
dbb41dd29e
11
.config/zsh/completions/_forward-local-port
Normal file
11
.config/zsh/completions/_forward-local-port
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
#compdef forward-local-port
|
||||||
|
|
||||||
|
_arguments '-h[short help text]' \
|
||||||
|
'--help[short help text]' \
|
||||||
|
'--local-port[local port to forward]:port:' \
|
||||||
|
'--remote-port[remote port to listen on]:port:' \
|
||||||
|
'1:host:_ssh_hosts'
|
||||||
|
|
||||||
|
# Local Variables:
|
||||||
|
# mode: shell-script
|
||||||
|
# End:
|
23
.config/zsh/functions/forward-local-port
Executable file
23
.config/zsh/functions/forward-local-port
Executable file
|
@ -0,0 +1,23 @@
|
||||||
|
#!/usr/bin/env zsh
|
||||||
|
# Forward a local port to a server via SSH tunnel.
|
||||||
|
|
||||||
|
setopt LOCAL_OPTIONS ERR_RETURN NO_UNSET PIPE_FAIL
|
||||||
|
|
||||||
|
zmodload zsh/zutil
|
||||||
|
local -a o_help=()
|
||||||
|
local -a o_lport=()
|
||||||
|
local -a o_rport=()
|
||||||
|
zparseopts -D -K -- h=o_help -help=o_help -local-port:=o_lport -remote-port:=o_rport
|
||||||
|
if [[ ${#o_help} -ne 0 || ! -v 1 || ${#o_lport} -ne 2 || ${#o_rport} -ne 2 ]]; then
|
||||||
|
local ret=$(( ${#o_help} ^ 1 ))
|
||||||
|
print -u $(( 1 + ${ret} )) "usage: ${0} [-h|--help]" \
|
||||||
|
"--local-port <PORT> --remote-port <PORT> <HOST>"
|
||||||
|
return ${ret}
|
||||||
|
fi
|
||||||
|
local host=${1}
|
||||||
|
local lport=${o_lport[2]}
|
||||||
|
local rport=${o_rport[2]}
|
||||||
|
|
||||||
|
print -P "%F{12}Forwarding local port%f %F{13}${lport}%f %F{12}over SSH tunnel" \
|
||||||
|
"to%f" "%F{13}${host}%f %F{12}port%f %F{13}${rport}%f %F{12}…%f"
|
||||||
|
ssh -R ${rport}:"[::1]":${lport} -N -T ${host}
|
Loading…
Reference in New Issue
Block a user