diff options
author | Evgeny Zinoviev <me@ch1p.io> | 2022-09-22 12:47:51 +0300 |
---|---|---|
committer | Evgeny Zinoviev <me@ch1p.io> | 2022-09-22 12:47:51 +0300 |
commit | fc80b64c036c7521703a3a97456c55fac53bf36f (patch) | |
tree | e8f3ae6b1ea3461da8393a200f67171d500be719 /src | |
parent | 243e7804f8ef3ef6c93a163fa46a1e1adca18260 (diff) |
add ssh_tunnels_config_util
Diffstat (limited to 'src')
-rw-r--r-- | src/home/config/config.py | 3 | ||||
-rwxr-xr-x | src/ssh_tunnels_config_util.py | 27 |
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() |