#!/usr/bin/env python3

import re
from subprocess import run
from socket import gethostname


class ConfigError(Exception):
    """Raised when the config file fails validation."""

    def __init__(self, message, config_file):
        self.config_file = config_file
        self.message = f"{config_file} : {message}"
        super().__init__(self.message)

def identifySystem():
    #os = None
    #with open('/etc/issue', 'r') as f:
    #    line = f.readline() 
    #    if re.search('Arch Linux', line):
    #        os = 'ARCHLINUX'
    #    elif re.search('Ubuntu', line):
    #        os = 'UBUNTU'
    #    elif re.search('Debian', line):
    #        os = 'DEBIAN'
    #    else:
    #        os = 'UNKNOWN'
    kernelVers = run(['/usr/bin/lsb_release', '-is'], capture_output=True)
    return kernelVers.stdout.decode('utf-8')

def getKernelVersion():
    """
        This function get the kernel version Linux
    """
    kernelVers = run(['/usr/bin/uname', '-r'], capture_output=True)
    return kernelVers.stdout.decode('utf-8')

def getCodeName():
    """
        This function get the code name of the system
    """
    kernelVers = run(['/usr/bin/lsb_release', '-cs'], capture_output=True)
    return kernelVers.stdout.decode('utf-8')

def getRelease():
    """
        This function get the release name of the system
    """
    kernelVers = run(['/usr/bin/lsb_release', '-rs'], capture_output=True)
    return kernelVers.stdout.decode('utf-8')

def getHostname():
    return gethostname()