doc_infra/parsers/freebsd.py

40 lines
1.1 KiB
Python
Raw Normal View History

#!/bin/env python3
2025-02-14 21:11:21 +01:00
def parse_ip(block):
result = {}
current_interface = ""
for line in block.splitlines():
if not line.startswith("\t"):
current_interface= line.split(":")[0]
result[current_interface] = []
elif line.strip().startswith("inet"):
result[current_interface].append(line.strip().split(" ")[1])
return result
2025-02-17 10:08:04 +01:00
def parse_os(raw_os):
result = {}
for line in raw_os.splitlines():
opt, value = line.split("=")
result[opt.lower()] = value
return result
def parse_freebsd(content):
current_section = ""
result = {}
for line in content.splitlines():
if line.startswith("#####") and line.endswith("#####"):
current_section = line.replace(" ","").replace("#","").lower()
result[current_section] = ""
else:
if current_section:
2025-02-14 21:11:21 +01:00
result[current_section] += line + "\n"
from pprint import pprint
#pprint(result)
2025-02-14 21:11:21 +01:00
result["ip"] = parse_ip(result["interfaces"])
2025-02-17 10:08:04 +01:00
result["os"] = parse_os(result["version"])
2025-02-14 21:11:21 +01:00
return result
if __name__ == "__main__":
main()