48 lines
1.2 KiB
Python
48 lines
1.2 KiB
Python
import os
|
|
|
|
barWidth = 50
|
|
|
|
class bcolors:
|
|
EMPTY = '\033[34m' #BLUE
|
|
MIDWAY = '\033[33m' #YELLOW
|
|
FULL = '\033[31m' #RED
|
|
RESET = '\033[0m' #RESET COLOR
|
|
UNUSED = '\033[90m' #UNUSED
|
|
|
|
# Function to generate usage bar based on percentage of storage in use
|
|
def generateBar(percentage):
|
|
no_used = int((percentage/100)*barWidth)
|
|
bar = '['
|
|
if no_used != 0 and no_used != barWidth:
|
|
bar = bar + bcolors.EMPTY
|
|
elif no_used == barWidth:
|
|
bar = bar + bcolors.FULL
|
|
bar = bar + '='*no_used
|
|
bar = bar + bcolors.UNUSED + '='*(barWidth - no_used)
|
|
return bar + bcolors.RESET + ']'
|
|
|
|
mountpoints = ['/', '/dev']
|
|
cmd = 'df -h '
|
|
|
|
# Generate command to be executed
|
|
for mount in mountpoints:
|
|
cmd = cmd + mount + ' '
|
|
|
|
du = os.popen(cmd).read() # Execute command on system
|
|
|
|
# Get percentages from each mounting point in order
|
|
percinfo = du.split()[11::6]
|
|
percs = []
|
|
for perc in percinfo:
|
|
percs.append(int(perc.split('%')[0]))
|
|
|
|
# Get full information from df and split it for fancy output
|
|
full = du.split('\n')
|
|
full = full[:-1] # Get rid of trailing empty string
|
|
|
|
# Output disk usage along with bar to indicate usage
|
|
print(full[0])
|
|
for i in range(1, len(full)):
|
|
print(full[i])
|
|
print(generateBar(percs[i-1]))
|