#!/bin/sh

SRC=/opt
TITLE="Установка системы"
devs=

for dev in /dev/sd?; do
    cur=`mount | grep $dev`
    if [ -z "$cur" ]; then
	blk=${dev:5}
	sysblk="/sys/class/block/$blk/device"
	size=$((`blockdev --getsize64 $dev`/1048576))
	if [ $size -gt 1024 ]; then
	    size="$((size/1024))Gb"
	else
	    size="$size"Mb
	fi
	size="`cat $sysblk/vendor | cut -d ' ' -f 1`/`cat $sysblk/model | cut -d ' ' -f 1`:$size"
	devs="$devs $blk $size"
    fi
done

if [ -z "$devs" ]; then
    dialog --msgbox "Ошибка!\n\nНе найдены устройства хранения!" 8 40
    exit
fi

exec 3>&1
dev=`dialog --backtitle "$TITLE" --title "Выберите устройство" --menu " " 15 50 10 $devs 2>&1 1>&3`
if [ $? -ne 0 ]; then
    exit
fi
core=`dialog --backtitle "$TITLE" --title "Выберите архитектуру" --menu " " 20 50 15 \
	core-x64 "64 бита, Silvermont" \
	bts-x64 "64 бита, Silvermont (BTS)" \
	live-x64 "Установочная флешка x64" \
	2>&1 1>&3`
if [ $? -ne 0 ]; then
    exit
fi
if [ "$core" = "live-all" ]; then
    arch="x64"
else
    arch=${core#*-}
fi
kerns=
for k in `ls $SRC/kernel-*-$arch.tar.xz 2>/dev/null`; do
    kver=`echo $k | cut -d '-' -f 2`
    ksize=$((`wc -c < $k`/1024))
    kerns=$kerns" $kver $ksize"Kb
done
if [ -z "$kerns" ]; then
    dialog --msgbox "Ошибка!\n\nНе найдены файлы ядра!" 8 40
    exit
fi

kver=`dialog --backtitle "$TITLE" --title "Выберите версию ядра" --menu " " 20 50 15 $kerns 2>&1 1>&3`
if [ $? -ne 0 ]; then
    exit
fi
type=${core%-*}
arch=${core#*-}
soft=
if [ "$type" = "live" ]; then
    soft="Загрузочная флешка ($arch)"
else
    soft=`dialog --backtitle "$TITLE" --title "Выберите необходимое ПО" --checklist " " 20 50 15 \
	digital3 "Демон программы Цифра 3" off \
	digital4 "Демон программы Цифра 4" off \
	eureka4 "Демон программы Эврика 4" off \
	eureka5 "Демон программы Эврика 5" off \
	2>&1 1>&3`
    if [ $? -ne 0 ]; then
	exit
    fi
fi
conf="\nУстройство: $dev\n\nАрхитектура: $arch\n\nЯдро: $kver\n\nПО: $soft\n"
dialog --backtitle "$TITLE" --title "Подтвердите конфигурацию" --yesno "$conf" 20 50 2>&1 1>&3
if [ $? -ne 0 ]; then
    exit
fi

if [ "$type" = "live" ]; then
    setup-live $dev $kver $arch
else
    setup-image $dev $core $kver $soft
fi

dialog --backtitle "$TITLE" --title "Установка завершена" --yesno "Выключить систему?" 20 50 2>&1 1>&3
if [ $? -ne 0 ]; then
    exit
fi

exec 3>&-
poweroff
