47 lines
1.4 KiB
Python
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') + ']')
|
|
|
|
|
|
|