Última atividade 1 month ago

Revisão 9defa80ec67b21340d1bd3317c7e3a41ad4d23ec

gistfile1.txt Bruto
1def net_resolve(file, name):
2 """Resolve service name to ip or ip:port:proto lines"""
3 data = _net_read(file)
4 if ':' in name:
5 svc_name, port_name = name.split(':', 1)
6 if svc_name not in data:
7 print(f"Error: Service not found: {svc_name}", file=sys.stderr)
8 sys.exit(1)
9 svc = data[svc_name]
10 ip = svc.get('ip', '')
11 if port_name == 'ports':
12 # All ports
13 for pname, pdef in svc.get('ports', {}).items():
14 print(f"{ip}:{pdef['port']}:{pdef.get('proto','tcp')}")
15 else:
16 if port_name not in svc.get('ports', {}):
17 print(f"Error: Port not found: {port_name}", file=sys.stderr)
18 sys.exit(1)
19 pdef = svc['ports'][port_name]
20 print(f"{ip}:{pdef['port']}:{pdef.get('proto','tcp')}")
21 else:
22 if name not in data:
23 print(f"Error: Service not found: {name}", file=sys.stderr)
24 sys.exit(1)
25 print(data[name].get('ip', ''))
26
27
28function net::resolve() {
29 local name="${1:?}"
30 json::net_resolve "$(ctx::net)" "$name"
31}
32
33