#!/bin/ash
#180723 sfs
#t="Мастер установки загрузчика grub4dos" 
PART(){
d=/dev/sda
dpm="$(ntf -l "`blkid |egrep -v "^/dev/sr|^/dev/loop"`" "На какой раздел скопировать grldr ?" "Файл загрузчика должен находиться на несъемном носителе" |awk -F: '{print $1}' |sed 's/dev/mnt/')"
[ "$dpm" ] ||PART
echo $dpm
}

CP(){
#PART
dpm="`echo "$dpm" |sed 's/dev/mnt/'`"
#echo "$d-$dp-$dpm" ;exit
mount-all `basename $dpm`

if [ -f "$dpm/$1" ] ;then
    ntf -q "$dpm/$1 существует" "Заменить?" && mv "$dpm/$1" "$dpm/$1.`date "+%y%m%d%H%M%S"`" || continue
fi
cp /usr/lib/grub4dos/"$1" "$dpm"
if [ -f "$dpm/$1" ] ;then
    ntf -i "Установка $dpm/$1 завершена успешно" &
else  ntf -a "Установка $dpm/$1 не произведена" && exit
fi
}
#dp=/dev/sde1 ;CP grldr ;exit

CP1(){
#	echo dpm="$dpm"
     CP menu.lst ; CP grldr ; CP rus_bold.lz ; install-pra "$dpm" ; exit
}
ERR() { [ ! "$d" ] && ntf -e "Ничего не выбрано" && exit ; }

INST32(){
 e="`/usr/lib/grub4dos/weesetup "$u" -b -s /usr/lib/grub4dos/weesetup.cfg --device="$d" 2>&1`"
     mount-all
 if [ "$?" = "0" ] ;then
     ntf -i "Установка MBR завершена успешно" &
     CP1
 else  
    if [ "$e" = "wee already installed, use -u option!" ] ;then
	if ntf -q "MBR wee уже установлен\n" "Переустановить?" ;then
	    u="-u" && INST
	else CP1
	fi
    else 
	echo e="$e"
	[ "$e" ] && ntf -a "Установка MBR не произведена\n" "$e" && exit || CP1
    fi
 fi
}

INST(){
#for i in `ls -1 /dev/[hs]d[a-z]` ;do
#for i in `ls -1 /dev/[hs][dr][a-z]` ;do
m0="- <b>Руководство</b> по grub4dos"
#d="$(ntf -l "$m0|`ls /dev/[hs]d[a-z]`" "Выберите устройство для установки grub4dos\n" "Перед установкой, про выбранное устройство будет выведена более полная информация")"
#d="$(ntf -l "$m0|`probedisk |tr "|" " "`" "Выберите устройство для установки grub4dos\n" "Перед установкой, про выбранное устройство будет выведена более полная информация")"

#d="$(ntf -l "$m0|`probedisk |tr "|" " " |grep -v "/dev/sr"`" "Выберите устройство для установки grub4dos\n" "Перед установкой, про выбранное устройство будет выведена более полная информация")"
DB(){
db="`fdisk -l |awk '/^\/dev\/.*\*/ {print $1}'`"
#db="`fdisk -l |awk '/^\/dev\/.*/ {print $1}'`"
[ ! "$db" ] && ntf -a "Ни на лдном из разделов подключенных носителей не обнаручено установленного флага 'boot'" "Для установки флага используте gparted или cfdisk" && exit 1
for i in $db ;do
    db2="$db2
`blkid |egrep '^'$i''`"
done
}
d="$(ntf -l "$m0|`blkid |egrep -v "^/dev/sr|^/dev/loop"`" "Выберите раздел для установки grub4dos\n" "Перед установкой, про выбранное устройство будет выведена более полная информация")"
#d="$(ntf -l "$m0|`echo "$db2" |sed '/^$/d'`" "Выберите раздел для установки grub4dos\n" "Перед установкой, про выбранное устройство будет выведена более полная информация")"
dpm="`echo $d| awk -F: '{print $1}'`"
#     echo d="$d" ;exit
#     dp="`echo "$d" |awk -F"/" '{print "/"$2"/"$3"1"}'`"
#dpm="`echo "$dp" |sed 's/dev/mnt/'`"
LANG=en_US.UTF-8 fdisk -l $dpm |egrep "^Disklabel type" |grep gpt && ntf -a "Grub4Dos не устанавливается на GPT." "Используйте grub2" && exit 1

if [ "$dpm" = "$m0" ] ;then
    defaultbrowser "http://greenflash.su/Grub4Dos/Grub4dos.htm" & 
    INST
fi
d="`echo $dpm |tr -d [0-9]`"
ERR

[ "`fdisk -l "$d" |egrep ' GPT$'`" ] && ntf -a "Установка на GPT не поддерживается" "`fdisk -l "$d"`" && exit

ntf -q "Вы уверены, что хотите установить grub4dos на\n$d ?

<b>Внимание!</b> Необдуманные действия могут привести к тому, что все системы c $d перестанут загружаться" "</i><small>`fdisk -l $d |egrep -v 'Units:| size '`</small><i>" || return

#cp -f /usr/lib/grub4dos/grldr.mbr /tmp/wee.mbr &&
#dd if=$d bs=1 skip=439 count=72 2>/dev/null | dd of=/tmp/wee.mbr bs=1 seek=439 conv=notrunc &&
#dd if=/tmp/wee.mbr of=$d &&
sudo -u `sfsusr` wt "sudo /usr/lib/grub4dos/bootlace.com $d"

CP1 &&
ntf -w "grub4dos" "успешно установлен на $d" && exit || ntf -w "grub4dos" "ОШИБКА установки!!!"
}

m1="<b>Windows</b> уже установлен"
#m2="<b>Windows XP</b> уже установлен"
m3="<b>grub2</b>  уже установлен (или установка)"
m0="<b>grub4dos</b>  уже установлен"
m4="<big>Установка <b>grub4dos</b> в MBR</big>" # (на устройстве нет установленных систем)"
d="$(ntf -l "$m0|$m1|$m3|$m4" "Установкв загрузчика в MBR")"
#echo "d=$d"
case $d in
    "$m1") defaultbrowser "http://wiki.puppyrus.org/puppyrus/grub#установка_на_компьютер_с_windows" & ;;
#    "$m2") defaultbrowser "http://wiki.puppyrus.org/setups/g4d-xp" & ;;
    "$m3") defaultbrowser "http://wiki.puppyrus.org/puppyrus/grub#установка_grub2" & ;;
    "$m0") 
	echo dpm="$dpm"
	install-pra #"$dpm"
XXX(){
    h=Справка
    [ "`uname -m`" = "x86_64" ] && f="|Full"
    y="`ntf -l "$h|Frugal$f" "Установка PRA" "Выберите вариант установки"`"
 case $y in
    $h)		defaultbrowser "http://wiki.puppyrus.org/setups/full-vs-frugal" ; ($0 &) ;exit ;;
    Frugal)	install-pra  "$dpm" ;;
    Full)	pra-full-inst ;;
    *)		exit ;;
 esac
}
	exit
	;;
    "$m4") INST ;;
    *) ERR ;;
esac
#$0



exit
#for i in `ls -1 /dev/[hs]d[a-z]` ;do
for i in `ls -1 /dev/[hs]d[a-z]` ;do
    j="$j$i
`blkid $i*`
"
done 
echo "$j"
#ntf -3
exit
ntf -3 "\
gtk-harddisk
$i

\
gtk-no
no
2" ["Заголовок"] ["текст"]

exit
#df -TH|sed -e '/Filesystem/d' -e '/aufs/d'|sed -e 's/fuseblk/NTFS/g' -e 's/vfat/FAT/g'|awk 'BEGIN{FS=OFS=" "}{$5=$6="";gsub(FS"+",FS)}1' \
#    |sed  's/ /|/g' |awk -F"|" '$2 !~ /squash|tmpfs|rootfs|fuse./ {print $0}'
#blkid |awk -F "TYPE=" '$2 !~ /squash|tmpfs|rootfs|fuse./ {print $1$2}'
ls /dev/[hs]d[a-z]
blkid |awk -F "TYPE=" '$2 ~ /ext|ntfs|fat/ {print $1}' |sed
#    |sed  's/ /|/g' |awk -F"|" '$2 !~ /squash/ && $2 !~ /tmpfs/ {print $0}'

 #> $WRK/dump

#awk '/[hs]d/ {print $4}' /proc/partitions | grep -v [0-9]
exit
#DdShurick GPL 230114 for PRA

DEVS=$(awk '/[hs]d/ {print $4}' /proc/partitions | grep -v [0-9])
#if [ "$(echo $DEVS | wc -w)" -gt 1 ]; then
for DEV in $DEVS
do
MEDIA="HD"
[ "$(cat /sys/block/$DEV/events)" = "media_change" ] && MEDIA="USB"
INFO=$(cat /sys/block/$DEV/device/{vendor,model} | tr -d ' ' | tr '\n' ' ')
MENU="${MENU}
$DEV $MEDIA $INFO"
done
yad --title "Выберите устройство" --width 300 --height 200 --center --list --print-column=1 --hide-column=1 --column "" --column "Тип" --column "Инфо" --column "" $MENU
#fi
echo "...Вы уверены?..." | yad --back=red --fontname="24" --wrap --justify=center --margins=10 --tail --width 300 --height 120 --center --undecorated --text-info --button=Да:0 --button=Нет:1
[ $? -gt 0 ] && exit
#Прописываем загрузчик
MYLOG=/tmp/$(basename "$0").log
sudo cp -f /usr/lib/grub4dos/grldr.mbr /tmp/wee.mbr >>$MYLOG 2>&1
sudo dd if=/dev/$DEV bs=1 skip=440 count=72 2>/dev/null | dd of=/tmp/wee.mbr bs=1 seek=440 conv=notrunc >>$MYLOG 2>&1
sudo dd if=/dev/$DEV of=${DEV}.backup.mbr bs=512 count=1 >>$MYLOG 2>&1 #backup
sudo dd if=/tmp/wee.mbr of=/dev/$DEV >>$MYLOG 2>&1
echo "...Готово..." | yad --back=green --fontname="24" --wrap --justify=center --margins=10 --tail --width 300 --height 120 --center --undecorated --text-info --button=Да:0
