diff --git a/parsers/base.py b/parsers/base.py index c7ea1e7..38efd4f 100644 --- a/parsers/base.py +++ b/parsers/base.py @@ -2,6 +2,7 @@ import sys from os import listdir from os.path import isfile, join +from json import loads from debian import parse_debian from freebsd import parse_freebsd from freebox import parse_freebox @@ -9,11 +10,17 @@ from jinja2 import Environment, FileSystemLoader def find_os(content): version = content.split("###### VERSION ######")[-1] - osystem = [line.split("=")[-1] for line in version.splitlines() if line.startswith("ID=")] - if osystem: - return osystem[0] - else: - return "freebox" + jcontent = {} + try: + jcontent = loads(version) + except: + osystem = [line.split("=")[-1] for line in version.splitlines() if line.startswith("ID=")] + if osystem: + return osystem[0] + print(content) + if "ID" in jcontent: + return jcontent["ID"] + return "freebox" def main(): diff --git a/parsers/freebsd.py b/parsers/freebsd.py index 5fd53d9..8436597 100644 --- a/parsers/freebsd.py +++ b/parsers/freebsd.py @@ -1,4 +1,5 @@ #!/bin/env python3 +from json import loads def parse_ip(block): result = {} @@ -31,7 +32,7 @@ def parse_freebsd(content): from pprint import pprint #pprint(result) result["ip"] = parse_ip(result["interfaces"]) - result["os"] = parse_os(result["version"]) + result["os"] = loads(result["version"]) return result if __name__ == "__main__":