diff --git a/parsers/debian.py b/parsers/debian.py index 3d20d97..3b0b59e 100644 --- a/parsers/debian.py +++ b/parsers/debian.py @@ -13,6 +13,12 @@ def parse_ip(raw_ip): result.append(interface) return result +def parse_os(raw_os): + result = {} + for line in raw_os.splitlines(): + opt, value = line.split("=") + result[opt.lower()] = value + return result def parse_debian(content): current_section = "" @@ -26,6 +32,7 @@ def parse_debian(content): result[current_section] += line + "\n" result["ip"] = parse_ip(result["ip"]) result["services"] = loads(result["services"]) + result["os"] = parse_os(result["version"]) return result if __name__ == "__main__": diff --git a/parsers/freebsd.py b/parsers/freebsd.py index 6fc3f8a..5fd53d9 100644 --- a/parsers/freebsd.py +++ b/parsers/freebsd.py @@ -11,6 +11,13 @@ def parse_ip(block): result[current_interface].append(line.strip().split(" ")[1]) return result +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 = {} @@ -24,6 +31,7 @@ def parse_freebsd(content): from pprint import pprint #pprint(result) result["ip"] = parse_ip(result["interfaces"]) + result["os"] = parse_os(result["version"]) return result if __name__ == "__main__": diff --git a/template/base.rst.j2 b/template/base.rst.j2 index 4aef743..e88db88 100644 --- a/template/base.rst.j2 +++ b/template/base.rst.j2 @@ -2,3 +2,5 @@ {{ hostname.replace("\n", "") }} {{ "=" * (hostname|length) }} +:os: {{ os["name"] }} +:version: {{ os["version"] }} diff --git a/template/debian.rst.j2 b/template/debian.rst.j2 index c2c7b0c..b87de9e 100644 --- a/template/debian.rst.j2 +++ b/template/debian.rst.j2 @@ -1,3 +1,4 @@ + {% include "base.rst.j2" %} network -------