#!/usr/bin/env python3

import subprocess
import sys
import json

def get_ethtool_output(interface):
    try:
        output = subprocess.check_output(['ethtool', interface], stderr=subprocess.DEVNULL, text=True)
        return output.splitlines()
    except subprocess.CalledProcessError:
        print("Error: Failed to run ethtool on interface", interface)
        sys.exit(1)

def parse_ethtool_output(lines, keys):
    result = {}
    for line in lines:
        line = line.strip()
        key = line.split(':', 1)[0].strip()
        if key in keys:
            key, value = line.split(':', 1)
            result[key.strip()] = value.strip()
    return result

if __name__ == "__main__":
    if len(sys.argv) != 2:
        print(f"Usage: {sys.argv[0]} INTERFACE")
        sys.exit(1)

    interface = sys.argv[1]
    keys = ["Duplex", "Auto-negotiation"]

    lines = get_ethtool_output(interface)
    parsed_data = parse_ethtool_output(lines, keys)

    print(json.dumps(parsed_data, indent=4))
