SPRKLstats/time.py

47 lines
1.4 KiB
Python

# Author: Stefan Weijers https://github.com/Stxfie
import os
from config import bcolors,env
# Sample output: 18:30:40 up 89 days, 19:23, 4 users, load average: etc
# Sample output: 18:42:20 up 5:56, 1 user, load average: 0.64, 0.62, 0.69
def filter(lsinp):
res = []
for elem in lsinp:
if ':' in elem: res.append(elem)
return res
def parseDays(inp):
tmp = inp.split('user') # should be ['18:30:40 up 89 days, 19:23, 4 ', 's load average etc']
tmp2 = tmp[0].split(',')
tmpmin = tmp2[1].split(':')
hours = tmpmin[0].strip()
minutes = tmpmin[1].strip()
tmpday = tmp2[0].split(' ')
days = tmpday[3].strip()
return (days,hours,minutes)
def parseNoDays(inp):
tmp = inp.split(' ')
tmp = filter(tmp)
tmpmin = tmp[1].split(':')
hours = tmpmin[0].strip()
minutes = tmpmin[1].strip(',')
return (hours, minutes)
def prettyPrint(value, typeofvalue): return bcolors.EMPTY + value + ' ' + bcolors.RESET + typeofvalue
time = os.popen('uptime').read() # Execute command on system
print(bcolors.EMPTY + env.name + bcolors.RESET)
print('Server has been running for:')
if 'days' in time:
days, hours, minutes = parseDays(time)
print('[' + prettyPrint(days, 'days') + ', ' + prettyPrint(hours, 'hours') + ' and ' + prettyPrint(minutes, 'minutes') + ']')
else:
hours, minutes = parseNoDays(time)
print('[' + prettyPrint(hours, 'hours') + ' and ' + prettyPrint(minutes, 'minutes') + ']')