restyled hdd bar
This commit is contained in:
22
30-hdd-free
22
30-hdd-free
@@ -1,38 +1,42 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# mountpoints=$(echo df -h | grep ^/dev/ | grep -v efi | awk '{print $1;}')
|
# mountpoints=$(echo df -h | grep ^/dev/ | grep -v efi | awk '{print $1;}')
|
||||||
mapfile -t mountpoints < <( df -h | grep ^/dev/ | grep -v efi | awk '{print $1;}' )
|
mapfile -t mountpoints < <( df -h | grep ^/dev/ | grep -v efi | awk '{print $6;}' )
|
||||||
|
|
||||||
IFS=$'\n' mountpoints=($(sort <<<"${mountpoints[*]}"))
|
IFS=$'\n' mountpoints=($(sort <<<"${mountpoints[*]}"))
|
||||||
unset IFS
|
unset IFS
|
||||||
|
|
||||||
barWidth=38
|
barWidth=40
|
||||||
maxDiscUsage=85
|
maxDiscUsage=85
|
||||||
|
midDiscUsage=45
|
||||||
clear="\e[39m\e[0m"
|
clear="\e[39m\e[0m"
|
||||||
dim="\e[2m"
|
ok="\e[32m"
|
||||||
|
alert="\e[33m"
|
||||||
|
warn="\e[31m"
|
||||||
barclear=""
|
barclear=""
|
||||||
echo
|
echo
|
||||||
echo 'HDD free:'
|
echo 'HDD free:'
|
||||||
for point in "${mountpoints[@]}"; do
|
for point in "${mountpoints[@]}"; do
|
||||||
line=$(df -h "${point}")
|
line=$(df -h "${point}")
|
||||||
# IFS=" " read fs size used avail use mount $(df -h "${point}")
|
# IFS=" " read fs size used avail use mount $(df -h "${point}")
|
||||||
label=$(lsblk -o label "${point}")
|
|
||||||
usagePercent=$(echo "$line"|tail -n1|awk '{print $5;}'|sed 's/%//')
|
usagePercent=$(echo "$line"|tail -n1|awk '{print $5;}'|sed 's/%//')
|
||||||
usedBarWidth=$((($usagePercent*$barWidth)/100))
|
usedBarWidth=$((($usagePercent*$barWidth)/100))
|
||||||
barContent=""
|
barContent=""
|
||||||
color="\e[33m"
|
color="${ok}"
|
||||||
if [ "${usagePercent}" -ge "${maxDiscUsage}" ]; then
|
if [ "${usagePercent}" -ge "${maxDiscUsage}" ]; then
|
||||||
color="\e[31m"
|
color="${warn}"
|
||||||
|
elif [ "${usagePercent}" -ge "${midDiscUsage}" ]; then
|
||||||
|
color="${alert}"
|
||||||
fi
|
fi
|
||||||
barContent="${color}"
|
barContent="${color}"
|
||||||
for sep in $(seq 1 $usedBarWidth); do
|
for sep in $(seq 1 $usedBarWidth); do
|
||||||
barContent="${barContent}|"
|
barContent="${barContent}▄"
|
||||||
done
|
done
|
||||||
barContent="${barContent}${clear}${dim}"
|
barContent="${barContent}${clear}${dim}"
|
||||||
for sep in $(seq 1 $(($barWidth-$usedBarWidth))); do
|
for sep in $(seq 1 $(($barWidth-$usedBarWidth))); do
|
||||||
barContent="${barContent}-"
|
barContent="${barContent}▄"
|
||||||
done
|
done
|
||||||
bar=" [${barContent}${clear}]"
|
bar=" ${barContent}${clear}"
|
||||||
echo "${point}" | awk '{printf(" %-14s", $1); }'
|
echo "${point}" | awk '{printf(" %-14s", $1); }'
|
||||||
echo "${line}" | awk '{if ($1 != "Filesystem") printf("%+8s used out of %+5s\n", $3, $2); }'
|
echo "${line}" | awk '{if ($1 != "Filesystem") printf("%+8s used out of %+5s\n", $3, $2); }'
|
||||||
echo -e "${bar}"
|
echo -e "${bar}"
|
||||||
|
|||||||
Reference in New Issue
Block a user