#!/bin/bash
# Andre, Horus e Rawena Lima GPL-GFDL 2000-2019

#checar parâmetros de entrada do rwin no eta c update-groo

#gdialog --msgbox "Seu computador tem apenas um disco ? Se for este o caso e seu disco destino estiver vazio e puder ser formatado, digite /dev/sda1 como destino. Não deixe espaços entre os caracteres ao escrever /dev/sda1, ok? Ou a instalação não vai funcionar e precisará ser reiniciada.";

#sleep 3;

gdialog --msgbox "Caso o disco destino do seu computador já tenha algum sistema instalado e dados a serem preservados, vai ser preciso identificar o disco por nome tipo /dev/sdxy e se tiver apenas um volume particionado este deve ser redimensionado liberando a parte vazia para criar um volume particionado adicional para o AMPLO. Analise seu(s) disco(s) na interface aberta a seguir e crie ou escolha o nome do volume particionado destinado ao AMPLO. O nome do volume destino fica com o mesmo formato /dev/sdxy a ser digitado para instalar conforme sua escolha. Esteja atento para digitar a letra correta no lugar de x e o numeral correto no lugar de y.";

sleep 3;

#gdialog --yesno "O disco desse seu computador têm sistemas e dados a preservar? Confirme por favor pois isso muda o modo de instalar, e confirme responsavelmente, pois se errar irá perder seus dados!!" 

#resposta=$?
#if [ "$resposta" = "1" ]; then

#PROCESSO DE INSERÇÃO AUTOMÁTICO DE DESTINO=/dev/sda1

#else

#PROCESSO DE INSERÇÃO MANUAL (READ) DO DESTINO;

#fi

sleep 3;

gparted & gdialog --msgbox "Quando terminar de analisar e localizar o nome do disco e volume conforme orientado, feche a interface de particionamento para prosseguir instalando. Se apertar a tecla Prt Scr ou Print Screen uma foto da interface vai para a pasta imagens para ser conferida se houver esquecimento. Se preferir isso pode ser feito para cada janela do instalador. Se preferir anote o nome do disco e volume escolhido(s) num papel. Lembre-se de não deixar espaços entre os caracteres na hora de digitar, ok ?";

sleep 3;

gdialog --yesno "Foste atento na leitura de alerta quanto aos seus dados e/ou aos sistemas previamente presentes no(s) disco(s) de seu computador ? Confirme direto ou leia novamente clicando em não. Agradecemos." 2 2

resposta2=$?

if [ "$resposta2" = "1" ]; then 

gdialog --msgbox "Caso o disco destino do seu computador já tenha algum sistema instalado e dados a serem preservados, vai ser preciso identificar na interface do particionador o disco pelo seu nome detectado como /dev/sdxy e se tiver apenas um volume particionado este deve ser redimensionado liberando a parte vazia para criar um volume particionado adicional para o AMPLO. Analise seu(s) disco(s) na interface do particionador aberta a seguir e crie ou escolha o nome do volume particionado destinado ao AMPLO. O nome do volume destino fica com o mesmo formato /dev/sdxy a ser digitado no rodapé da janela do terminal para instalar conforme sua escolha. Esteja atento para digitar a letra correta no lugar de x e o numeral correto no lugar de y. Quando terminar de analisar e localizar o nome do disco e volume conforme orientado, feche a interface para prosseguir instalando. Se apertar a tecla Prt Scr ou Print Screen uma foto da interface vai para a pasta imagens para ser conferida se houver esquecimento. Se preferir anote o nome do disco e volume escolhido(s) num papel. Lembre-se de não deixar espaços entre os caracteres na hora de digitar, ok ?" 10 5; 

gparted; 

else

gparted & gdialog --msgbox "Apenas confirmando novamente por segurança, se tudo ok pode fechar a interface do particionador e prosseguir" ; 

fi

gdialog --msgbox "Deve ser escolhido o disco que vai ficar no seu computador para gerenciar a abertura do(s) sistema(s) digitando a seguir na janela do terminal o nome identificador no formato /dev/sdx onde x pode ser a quando o computador tiver apenas um disco além do disco de origem com o instalador do AMPLO, que, em geral, vai ser um disco USB e estar sendo visto como /dev/sdb, mas se houver algum outro disco USB ou SD plugado no seu computador, o disco de origem com o instalador do AMPLO pode mudar para /dev/sdc ou ainda /dev/sdd. Seja atencioso para inverter os nomes origem-destino se for instalar do HD para o USB ou SD." 10 5;

sleep 3;

echo "Digite agora o nome de seu volume:"

read DESTINO

gdialog --msgbox "Se quiser dar nome ao volume destino digite na janela do terminal um com limite de 16 caracteres. Ou apenas deixe em branco e tecle enter." ;

read NOME

ORIGEM=`cat /etc/mtab | grep " / " | grep "/dev" | cut -f1 -d ' '`

TIPO=`cat /etc/mtab | grep " / " | grep "/dev" | cut -f3 -d ' '`

DISCO=`echo $DESTINO | cut -c1-8`

gdialog --msgbox "Então, o nome do seu sistema será $NOME, sua partição escolhida é $DESTINO, a partição de onde o sistema será copiado é $ORIGEM e o disco no qual será instalado o boot é $DISCO";

sleep 3;

gdialog --yesno "Tem certeza de que quer continuar instalando o AMPLO agora? Caso sim, confirme, e o disco que escolheu vai ser devidamente formatado para o sistema ser configurado no disco destino que você escolheu. Senão, clique em Não e volte a instalar em outro momento que estiver mais seguro de cada passo, dados e sistemas preservados de modo mais controlado e consciente, lembrando que, por meio do navegador de arquivos, você pode acessar seus dados e fazer BCAP de disco para disco a qualquer momento. Agradecemos a sua escolha! :)" 2 2

resposta3=$?

if [ "$resposta3" = "1" ]; then

gdialog --msgbox "Você deve ter tido algum motivo para interromper o instalador do AMPLO neste momento... Agradecemos pelo uso e volte a instalar em breve! :)";

exit

else

gdialog --msgbox "Agradecemos por escolher o Horizonte AMPLO. Instalando agora...aguarde de 15 a 30 minutos...Seja paciente, aproveite para tomar um chazinho ou coisa parecida enquanto isso, ok? Quando o processo concluir vai surgir um aviso...";

dd if=$ORIGEM of=$DESTINO;

e2fsck -f -y -v -C 0 $DESTINO ;

resize2fs -p $DESTINO ;

tune2fs -U random $DESTINO ;

e2label $DESTINO "$NOME"

mount -t $TIPO $DESTINO /mnt ;

grub-install --root-directory=/mnt $DISCO ;

DESTINO2=`echo $DESTINO | cut -c6-10` ;

UUID=`ls -l /dev/disk/by-uuid/ | grep $DESTINO2 | awk 'NR == 1' | cut -f9 -d ' '` ;

DESTINO3=`echo $DESTINO | cut -c9-10` ;

MSDOS=`echo "msdos$DESTINO3"` ;

DESTINO4=`echo $DESTINO | cut -c8` ;
case $DESTINO4 in
"a") export HD="0" ;;
"b") export HD="1" ;;
"c") export HD="2" ;;
"d") export HD="3" ;;
"e") export HD="4" ;;
"f") export HD="5" ;;
"g") export HD="6" ;;
"h") export HD="7" ;;
"i") export HD="8" ;;
"j") export HD="9" ;;
"k") export HD="10" ;;
"l") export HD="11" ;;
"m") export HD="12" ;;
"n") export HD="13" ;;
"o") export HD="14" ;;
"p") export HD="15" ;;
"*") export HD="0" ;;
esac

GRUBFILE=/mnt/boot/grub/grub.cfg ;

GRUBDIR=/mnt/boot/grub/

FSTABFILE=/mnt/etc/fstab ;

FSTABDIR=/mnt/etc/

GRUBSTRINGMSDOS=`cat $GRUBFILE | grep "msdos" | grep "hd" | awk 'NR == 1' | cut -f2 -d ' ' | cut -f2 -d "'" | cut -c3-10`
STRINGUUID=`cat $GRUBFILE | grep "root=UUID" | awk 'NR == 1' | cut -f2 -d ' ' | cut -c11-46`

mv $GRUBFILE $GRUBDIR/bkp.grub.cfg
mv $FSTABFILE $FSTABDIR/bkp.fstab

sed "s/$GRUBSTRINGMSDOS/$HD$MSDOS/g;s/$STRINGUUID/$UUID/g;s/Debian GNU/AMPLO GNU/g" $GRUBDIR/bkp.grub.cfg > $GRUBFILE

sed "s/$STRINGUUID/$UUID/g" $FSTABDIR/bkp.fstab > $FSTABFILE

umount $DESTINO

gdialog --msgbox "Processo completo. Reinicie sem o disco USB de origem do AMPLO para conferir se tudo ok com o sistema AMPLO no HD destino. Bom proveito ! Para colaborar, coautorar, sugerir, contribuir, e/ou doar escreva para saberlivre@riseup.net. Agradecidos...."

exit

fi
