#!/usr/bin/python3
import subprocess, os

def checkSystemd():
    formattedOutput = 'The following issues were found with systemd\n\n'
    systemctlOutput = subprocess.getoutput("systemctl").split('\n')
    systemctl = []

    for x in range(0,len(systemctlOutput)): # Interate over the lists in systemctl
        if systemctlOutput[x].count("failed") >= 1: #Check if anything has failed
            systemctl.append(systemctlOutput[x])
            
    for x in range(0,len(systemctl)):
        formattedOutput += systemctl[x].split(' ')[1] + ' ' + 'has failed' + '\n'
        
    print(formattedOutput)
    os.system("zenity --error --ellipsize --text='{}' 2>/dev/null".format(formattedOutput))

def diskUsage():
    formattedOutput = 'Low diskspace detected\n\n'
    dfOutput = subprocess.getoutput("df -h").split('\n')
    diskSpace = []
    threshold = 85 #Percent threshold for disk space usage

    for x in range(1,len(dfOutput)):
        for i in range(0,len(dfOutput[x].split(' '))):
            if dfOutput[x].split(' ')[i].count("%") >= 1:
                if int(dfOutput[x].split(' ')[i].strip("%")) >= threshold:
                    diskSpace.append(dfOutput[x])

    for x in range(0,len(diskSpace)):
        for i in range(0,len(diskSpace[x].split(' '))):
            if diskSpace[x].split(' ')[i].count("%") >= 1:
                formattedOutput += diskSpace[x].split(' ')[i+1] + " is at " + diskSpace[x].split(' ')[i] + " disk usage" + '\n'

    print(formattedOutput)
    os.system("zenity --error --ellipsize --text='{}' 2>/dev/null".format(formattedOutput))
    
checkSystemd()
diskUsage()
