40 lines
1006 B
Bash
Executable File
40 lines
1006 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# config
|
|
max_usage=90
|
|
bar_width=50
|
|
# colors
|
|
white="\\e[39m"
|
|
green="\\e[1;32m"
|
|
red="\\e[1;31m"
|
|
dim="\\e[2m"
|
|
undim="\\e[0m"
|
|
|
|
# disk usage: ignore zfs, squashfs & tmpfs
|
|
mapfile -t dfs < <(df -H -x zfs -x squashfs -x tmpfs -x devtmpfs --output=target,pcent,size | tail -n+2)
|
|
for line in "${dfs[@]}"; do
|
|
# get disk usage
|
|
usage=$(echo "$line" | awk '{print $2}' | sed 's/%//')
|
|
used_width=$(((usage*bar_width)/100))
|
|
# color is green if usage < max_usage, else red
|
|
if [ "${usage}" -ge "${max_usage}" ]; then
|
|
color=$red
|
|
else
|
|
color=$green
|
|
fi
|
|
# print green/red bar until used_width
|
|
bar="[${color}"
|
|
for ((i=0; i<used_width; i++)); do
|
|
bar+="="
|
|
done
|
|
# print dimmmed bar until end
|
|
bar+="${white}${dim}"
|
|
for ((i=used_width; i<bar_width; i++)); do
|
|
bar+="="
|
|
done
|
|
bar+="${undim}]"
|
|
# print usage line & bar
|
|
printf " Disk usage:\\n" | /usr/games/lolcat -f
|
|
echo -e "${bar}" | sed -e 's/^/ /'
|
|
done
|