#!/bin/bash
#260102 sfs

NTF(){
gtk=yad
    [ "$1" = "-i" ] && { notify-send -a mmod -i $2 "`printf "$3\n$4"`" ; return ; }
    i="--image=gtk-info --button=$gtk-ok:0 --back=red" && col=green
    [ "$1" = "-q" ] && i="--image=gtk-dialog-question --button=$gtk-yes:0 --button=$gtk-no" && col=black
    [ "$1" = "-a" ] && i="--image=gtk-dialog-error --button=$gtk-ok:0" && col=red
    tit="`echo $2 | sed 's/<[^>]*>//g'`"
    yad --width=600 --form --fixed --name=gtk-info  \
    --image-on-top $i  --mouse \
    --window-icon=gtk-info --title="$tit" \
    --text "<span color=\"$col\"><b>$2</b></span>\n<i>$3</i>"  >/dev/null && echo $? 
}
export -f NTF

C() {
#s="`df -m | grep ' '$d'$' |awk '{print "Всего: " int($2/1024*100)/100" Гб; Свободно: <b>"int($4/1024*100)/100"</b> ГБ ("int($4/$2*100)"%)"'}`"
#s="`df -m | egrep '^'$d'' |awk '{print "Всего: " int($2/1024*100)/100" Гб; Свободно: <b>"int($4/1024*100)/100"</b> ГБ ("int($4/$2*100)"%)"'}`"
#s="`df -m $d |tail -1 |awk '{print "Всего: " int($2/1024*100)/100" Гб; Свободно: <b>"int($4/1024*100)/100"</b> ГБ ("int($4/$2*100)"%)"'}`"
p="`df $d |tail -1 |awk '{print  "("int($4/$2*100)"%)"'}`"
p2="`df $d |tail -1 |awk '{print  100-int($4/$2*100)'}`"
s="`df -h $d |tail -1 |awk '{print "Всего: "$2"; Свободно: <b>"$4"</b> '$p'"'}`"
s2="`df -h $d |tail -1 |awk '{print $4'}`"
#s="`df -m | awk '/^'$d'/ {print "Всего: " int($2/1024*100)/100" Гб; Свободно: <b>"int($4/1024*100)/100"</b> ГБ ("int($4/$2*100)"%)"'}`"
}

value() { egrep -o "(^| )$1=[^ ]+" /proc/cmdline | cut -d= -f2; } #sfs
c="`value changes |sed 's/EXIT://'`"
#echo "c=$c" ;exit

if [ "$c" ] ;then
    #[ "`echo "$c" | egrep -e '^/dev/'`" ] && d= || d=/ 
    #d="`mount |awk '/\/mnt\/live\/memory\/changes/ {print $1}'`"
    d="/mnt/live/memory/changes"
    #if [ -f "$c" ];then
    if [ "`df $d |egrep '^/dev/loop'`" ];then
	r="в файле сохранения |($c)"
    else 
	[ "`echo "$c" |egrep '^/dev/'`" ] || c="`ls -dl /mnt/home |awk -F"-> " '{print $2}'`"
	[ -L /mnt/home ] || c="`df /mnt/home |awk '/^\/dev/ {print $1}'`"
	r="на разделе сохранения $c"
    fi
else
for dd in /mnt/live/memory/changes /memory /initrd/pup_rw /mnt/rw ;do
    [ -d $dd ] || continue
    d=$dd 
    r="на RAM-диске $d"
    rs="`value ramsize`"
    [ "$rs" ] || rs=60
b="<small> \
= $rs% доступной физической памяти.|
<u>Изменить:</u> параметр <i>ramsize=80%</i> в параметрах ядра|
<u>Cоздать файл</u> (раздел или папку) сохранения: параметр <i>changes=</i></small>|"
    #r=" (`date`)"
    break
done
fi
    C 
if [ $1 ];then
    echo $p2 #echo "$((100-$p2))"
    echo "В сохраненке свободно $s2 $p"  >&2
    exit 0
fi
pidof uksmd && uk="<b>Экономия памяти (UKSM):</b>|
`uksmstat -spm| awk '{print $1+0" Mb"}'`=$((`checkramfree-sf -u`+0))% экономии RAM от занятой|"

n2="<b>Использование памяти (RAM):</b>
"
n="`checkramfree-sf -f`||
`swapon --show |sed 's#/dev/zram0#zram0		# ; s#NAME#<b>SWAP:</b>#'`
<small>`zramctl --raw |sed 's/TOTAL // ; s/NAME //'  |tr " " "\t"`</small>
Cистема загружена в режиме: <b>`full-sf`</b>|
 |
<b>Место $r:</b>|
$s|
$uk|
$b|
<small>
<span color='"'yellow'"'>▒▒▒▒▒▒▒▒</span><i> При 30% - фон желтый</i>|
<span color='"'pink'"'>▒▒▒▒▒▒▒▒</span><i> 10% - красный</i> |</small>
|
|
"
#pnotify "$n" || xpupsay --at=10000000,100000000 "`echo "$n"| sed 's/|/\n/g' |egrep -v '^$'`" --think --image /usr/share/pixmaps/cow_small.png -f "Sans 11" &
#pnotify "$n" || xpupsay --at=10000000,100000000 "`echo "$n"| sed 's/|/\n/g' |egrep -v '^$'`" --think --image /usr/share/xcowsay/cow_small.png -f "Sans 11" &
NTF -w "$n2" "`echo "$n"| sed 's/|/\n/g' |egrep -v '^$'`"  &
