summaryrefslogtreecommitdiff
path: root/bin/ssh_tunnels_config_util.py
diff options
context:
space:
mode:
authorEvgeny Zinoviev <me@ch1p.io>2024-02-17 03:08:25 +0300
committerEvgeny Zinoviev <me@ch1p.io>2024-02-17 03:08:25 +0300
commit0ce2e41a2bad790c5232fafb4b6ed631ca8cd957 (patch)
treefd401495b87cae8c95a4c4edf2c851c8177b6069 /bin/ssh_tunnels_config_util.py
parente9fc2c1835f7ac8e072919df81a6661c6308dea9 (diff)
parentb7f1d55c9b4de4d21b11e5615a5dc8be0d4e883c (diff)
merge with master
Diffstat (limited to 'bin/ssh_tunnels_config_util.py')
-rwxr-xr-xbin/ssh_tunnels_config_util.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/bin/ssh_tunnels_config_util.py b/bin/ssh_tunnels_config_util.py
new file mode 100755
index 0000000..d08a4f4
--- /dev/null
+++ b/bin/ssh_tunnels_config_util.py
@@ -0,0 +1,35 @@
+#!/usr/bin/env python3
+import __py_include
+from homekit.config import config
+
+if __name__ == '__main__':
+ config.load_app('ssh_tunnels_config_util')
+
+ network_prefix = config['network']
+ hostnames = []
+
+ for k, v in config.app_config.get().items():
+ if type(v) is not dict:
+ continue
+ hostnames.append(k)
+
+ for host in hostnames:
+ buf = []
+ i = 0
+ for tun_host in hostnames:
+ http_bind_port = config['http_bind_base'] + config[host]['bind_slot'] * 10 + i
+ ssh_bind_port = config['ssh_bind_base'] + config[host]['bind_slot'] * 10 + i
+
+ if tun_host == host:
+ target_host = '127.0.0.1'
+ else:
+ target_host = f'{network_prefix}.{config[tun_host]["ipv4"]}'
+
+ buf.append(f'-R 127.0.0.1:{http_bind_port}:{target_host}:{config[tun_host]["http_port"]}')
+ buf.append(f'-R 127.0.0.1:{ssh_bind_port}:{target_host}:{config[tun_host]["ssh_port"]}')
+
+ i += 1
+
+ print(host)
+ print(' '.join(buf))
+ print()