diff --git a/home/private_bin/executable_tunnel.nu b/home/private_bin/executable_tunnel.nu deleted file mode 100644 index bfe2eaf..0000000 --- a/home/private_bin/executable_tunnel.nu +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/env nu - -use std log - -def start-ssh-controller [host: string] { - log info $"initializing connection to ($host)" - ssh -M -f -N $host -} - -def is-null [ name: string, arg: any] { - if $arg == null { - log error $"expected argument for --($name)"; exit 1 - } -} - -# script `--help` will improve :) -# https://github.com/nushell/nushell/pull/13445 - -# control background tunnels -# usage: -# tunnel up -p 4321 computer -# tunnel down computer -def main [] { - print "use subcommands up/down to control ssh tunnels" - help main -} - -# activate ssh tunnel -def "main up" [ - host: string # host name - --port: int # port number -] { - is-null "port" $port - - if (ssh -O check $host | complete).exit_code != 0 { - start-ssh-controller $host - } - ssh -fNL $"($port):localhost:($port)" $host -} - -# shutdown ssh tunnels on host -def "main down" [ - host: string # host name -] { - log info $"exiting connection to ($host)" - ssh -O exit $host -} - -def "main show" [] { - let sockets = ( - ls ~/.ssh/ - | where name =~ control - | get name - ) - let n_sockets = $sockets | length - if $n_sockets > 0 { - print $"($n_sockets) active connections" - $sockets - | split column "-" - | get column2 - } else { - log info "no open connections" - } -}