summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEvgeny Zinoviev <me@ch1p.io>2022-09-22 12:47:51 +0300
committerEvgeny Zinoviev <me@ch1p.io>2022-09-22 12:47:51 +0300
commitfc80b64c036c7521703a3a97456c55fac53bf36f (patch)
treee8f3ae6b1ea3461da8393a200f67171d500be719 /src
parent243e7804f8ef3ef6c93a163fa46a1e1adca18260 (diff)
add ssh_tunnels_config_util
Diffstat (limited to 'src')
-rw-r--r--src/home/config/config.py3
-rwxr-xr-xsrc/ssh_tunnels_config_util.py27
2 files changed, 30 insertions, 0 deletions
diff --git a/src/home/config/config.py b/src/home/config/config.py
index 8b50609..f953c43 100644
--- a/src/home/config/config.py
+++ b/src/home/config/config.py
@@ -105,6 +105,9 @@ class ConfigStore:
def __contains__(self, key):
return key in self.data
+ def items(self):
+ return self.data.items()
+
config = ConfigStore()
diff --git a/src/ssh_tunnels_config_util.py b/src/ssh_tunnels_config_util.py
new file mode 100755
index 0000000..aaf2192
--- /dev/null
+++ b/src/ssh_tunnels_config_util.py
@@ -0,0 +1,27 @@
+#!/usr/bin/env python3
+
+from home.config import config
+
+if __name__ == '__main__':
+ config.load('ssh_tunnels_config_util')
+
+ network_prefix = config['network']
+ hostnames = []
+
+ for k, v in config.items():
+ if type(v) is not dict:
+ continue
+ hostnames.append(k)
+
+ for host in hostnames:
+ buf = []
+ i = 0
+ for tun_host in hostnames:
+ bind_port = 55000 + config[host]['bind_slot']*10 + i
+ target = ('127.0.0.1' if host == tun_host else network_prefix + '.' + str(config[tun_host]['ipv4'])) + ':' + str(config[tun_host]['http_port'])
+ buf.append(f'-R 127.0.0.1:{bind_port}:{target}')
+ i += 1
+
+ print(host)
+ print(' '.join(buf))
+ print()