#!/bin/sh
# PC-BSD Install CD 'Restore bootloader' menu
# Copyright 2006 PC-BSD Software
# http://www.pcbsd.com
# Author: Yuri Momotyuk
############################################################################

##################### Get end prepare to dialog list of disks ##################
DISKS=`/root/pc-sysinstall/backend-query/disk-list.sh | sed -e 's/</"/;s/>/"/;s/://'`

CMD="dialog --title 'Restore bootloader' --clear --menu 'Select hdd:' 10 51 4 $DISKS exit 'Exit to Utility' 2>/tmp/choise"

IS_REPEAT=1

################### While user not 'no' in confirm dialog ######################
while [ "${IS_REPEAT}" != "0" ]
do 
  eval $CMD

  if [ $? != 0 ] 
  then
    exit 0
  fi

  CHOISE=`cat /tmp/choise`

  if [ "${CHOISE}" = "exit" ] 
  then
    exit 0
  fi

  dialog --title 'Write bootloader' --yesno "Do you wish to write bootloader on ${CHOISE}?" 5 60

  IS_REPEAT=$?

done

################## Write bootloader ############################################

FDISK_CALL="gpart bootcode -b /boot/boot0 $CHOISE"
eval $FDISK_CALL

################# Error handling ###############################################
if [ $? != 0 ]
then
  dialog --msgbox "Error while executing $FDISK_CALL!" 5 60
  exit 1
fi