#!/bin/ash



TST=0      # normaler Betrieb
#TST=1      # test
PROBLEM=0       # schwere/leichte Probleme:   > 10: Abbruch , < 10 versuchen weiterzumachen
echo $PROBLEM > problem  
SIZE=40000000   # Sektoren  , V. 0.20   Wird in mkpart genauer bestimmt  


#REDIRECT="  >> logfile 2>&1  "     # Ersetzt nicht richtig 
echo " Anfang logfile "  > logfile 2>&1

SYSSCHONDA=0  ; OBSCHONDA=0  #  grobe Suche ob selbe Version von SYS schon irgendwo installiert ist . 
                             # Genommen wird erste gefundene Instalation


./mountsysfs   >> logfile 2>&1     
/bin/setterm -powersave off   >> logfile 2>&1       


for J in hda hdb hdc hdd sda sdb sdc sdd  ; do  
for I in 1 2 3 4 ; do
if test $SYSSCHONDA = 0 ; then 
echo "Suche nach vhd SYS Installation auf Partition: " /dev/$J$I    >> logfile  2>&1   
mkdir -p /$J$I   >> logfile  2>&1
mount /dev/$J$I /$J$I -o ro  >> logfile  2>&1   
if test $? -eq 32 ; then  rm -r /$J$I   >> logfile  2>&1
else  
( cat /$J$I/etc/SYS-version > scr0 )  >> logfile  2>&1
read OBSCHONDA REST < scr0   >> logfile  2>&1       #  wird bei erfolgreicher Installation am Ende von copysys hineingeschrieben 
if test "$OBSCHONDA" = SYS   >> logfile  2>&1 ; then SYSSCHONDA=1 ; DEVSCHONDA00=/$J$I ; DEVSCHONDA0=/dev/$J  
echo " SYS schon da auf Partition: " /dev/$J$I  >> logfile  2>&1 
fi ; 
umount /$J$I    >> logfile  2>&1 
fi ;  
fi ;  # end SYSSCHONDA=0      
done 
done
clear 


dialog   --title " S Y S " --yes-label "INSTAL" --no-label "RESCUE" --timeout 5 --colors --no-collapse --yesno  "

           \Zb\Z1 SYS \Zn   


   
 \Z3 Instalacao    Installierung\Zn

    \Z3 Socorro    Rescue \Zn



     Versao 0.22        28/4/08
      \Z4 www.copaya.yi.org \Zn

" 20 34    

MACHEN=$?

#  0 :  Install   1 : rescue   255 : timeout  --> 0
#  Wird nichts eingegeben, installieren falls SYS_SCHON_DA = 0 , rescue falls SYS_SCHON_DA = 1
#     Incl. damit zweite Installation nur falls ausdr. verlangt (falls jemand geschlafen hat Install-CD rauszunehmen und restart) 

MACHEN1=$MACHEN
if test $MACHEN = 255 ; then MACHEN=0 ; fi ;     #  normalerweise default = installieren 

if test $SYSSCHONDA = 1   ; then 
if test $MACHEN = 0  ; then        
dialog  --title "SYS is already instaled, affirm a 2nd installation" --yes-label "INSTAL" --no-label "RESCUE" --timeout 7 --colors --no-collapse --yesno  "

\Z1 SYS JA E INSTALLADO   SYS IST SCHON INSTALLIERT \Zn
                \Z3 /dev$DEVSCHONDA00 \Zn
 Afirmar se deve ser    Bestaetigen falls es 
 instalado outra vez    zusaetzlich nochmal
      adicionalmente    installiert werden soll  
  (se nao -> rescue)    (sonst -> rescue) \Zn

" 14 52   

MACHEN=$?
if test $MACHEN = 255 ; then   if test $MACHEN1 = 0 ; then MACHEN=0 
else  MACHEN=1 ; fi   ; fi ;  
                        #  Wenn beim 1.mal ausdruecklich (kein Zeitlimit) instal gewaehlt, ist das beim 2.mal default      
                        #  falls schon ein SYS installiert, default = rescue / lilo reparieren

if test $MACHEN = 1 ; then  
echo " lilo  von SYS -Installierung auf Partition" /dev$DEVSCHONDA00  " reparieren, in MBR von Festplatte " $DEVSCHONDA0  " installieren: "  >> logfile  2>&1 
# Falls nach rescue statt install weil Instalation schon da, wenigstens bootloader der ersten Installation von SYS erneuern
mkdir -p $DEVSCHONDA00  >> logfile  2>&1 
mount /dev$DEVSCHONDA00 $DEVSCHONDA00  >> logfile  2>&1   
chroot $DEVSCHONDA00 /sbin/lilo -b $DEVSCHONDA0  >> logfile  2>&1 
umount /dev$DEVSCHONDA00   >> logfile  2>&1 
fi ;   # end MACHEN=1 = lilo reparieren


fi  ;  # end  MACHEN=0 = installieren 
fi ;   # end  SYSSCHONDA=1



RESCUE=$MACHEN    
#echo $RESCUE > rescue   


#read RESCUE REST < rescue



if test $RESCUE = 0 ; then

###  1. Instalation ########################################################################################


#RESCUE=1 ; echo "1  Anfang init " > rescue    # wenn Installierung klappt, dann am Ende derselben =0 setzen, wenn was schieflaeuft, =1 lassen





NACH=- ; NACH0=- ; VON=- ; KLEINER=-  ; OLDSYS=- ; WINDOWS=-       #  werden in mkpart bestimmt und in copysys verwendet
echo  $TST $SIZE $NACH0 $NACH $VON $KLEINER $OLDSYS $WINDOWS  > installinfo         

##### 1.1.  Partitionen machen ###########################################################################################


dialog --title "verifying & optimizing the computer .."  --no-collapse --colors --infobox "
   \Z1 VERIFICACAO         UEBERPRUEFUNG
E APERFEICOACAO         UND REORGANISATION
  DO COMPUTADOR         DES COMPUTERS \Zn

             ...

     \Z3 Aguarde !         Warten !\Zn
         (5 - 15 min.)


  \Z3 Se o monitor         Falls Bildschirm
ou as mensagens         oder Schrift vorher
   ficam pretos         schwarz werden,
  antes, aperta         druecken:
            \Zn \Z4 CTRL \Zn

" 22 41

#sleep 3 


./mkpart    >> logfile 2>&1          #  schreibt Install-Device und Install-Partition  in   installdevice

#dialog  --clear --infobox " " 0 0          # Versuch damit abzufangen dass Text nach Monitor-Timeout schwarz wird

read TST SIZE NACH0 NACH VON KLEINER OLDSYS WINDOWS REST < installinfo
read PROBLEM REST < problem
SIZEGB=$(( $SIZE / 2000000 + 1))

if test $PROBLEM = 5 ; then
dialog --title "need to delete partition $KLEINER" --yes-label "OK" --no-label "PARAR/HALT" --timeout 5 --no-collapse --colors --yesno "
   \Z1 NECESSARIO APAGAR  NOETIG PARTITION
      A PARTICAO :  ZU LOESCHEN : \Zn 
               \Z4 $KLEINER  \Zn

"  9 42 
MACHEN=$?
#  0 :  continue   1 : stop   255 : timeout  --> 0
if test $MACHEN != 1 ; then MACHEN=0 ; fi ;
if test $MACHEN = 1 ; then PROBLEM=15 ; fi ;
# Hier ggf. in einer ntfs/vfat Partition viel loeschen wie Programme usw und dann mkpart nochmal aufrufen 

fi ;  # end PROBLEM=5 


if test $PROBLEM = 11 ; then
dialog --title "no space for install (needs $SIZEGB GB)" --no-collapse --colors --msgbox "
   \Z1 ESPACO INSUFI-  ZUWENIG PLATZ
 CIENTE P/INSTALAR  FR INSTALATION 
      NECESSARIO :  NTIG : \Zn 
               \Z4 $SIZEGB  GB \Zn

"  9 42 

#sleep  20

fi ;

# Nachfolgendes dürfte eigentlich nicht passieren, nur falls hier nicht vorgesehene dev-Namen:

if test $PROBLEM = 12 ; then
dialog --title "install-DVD $VON could not found/read .." --no-collapse --colors --msgbox "
 \Z1 DVD DA INSTALACAO  INSTAL-DVD NICHT
        NAO LEGIVEL  AUFFINDBAR / LESBAR \Zn 
               \Z4 $VON \Zn

"  9 46 

#sleep  20

fi ;


if test $PROBLEM = 13 ; then
dialog --title "destination disk $NACH not found/writeable .." --no-collapse --colors --msgbox "
  \Z1 DISCO AONDE INSTALAR  ZIEL-FESTPLATTE NICHT
 NAO ACHADO / C PROBLEM  AUFFINDBAR / SCHREIBBAR \Zn 
                  \Z4 $NACH \Zn

"  9 53 

#sleep  20

fi ;




if test $PROBLEM -le 10 ; then  



if test $KLEINER != - ;  then      
dialog --title "shrinking a partition .." --no-collapse --colors --infobox "

 \Z1 REDIMENSIONAR     VERKLEINERN
     A PARTICAO     DER PARTITION \Zn 
           \Z4 $KLEINER \Zn

"  8 40 

#sleep 3 

fi ;


# Ueberfluessig da Name der Partition auch in naechstem Fenster steht
#dialog --title "making a new partition $NACH .." --no-collapse --colors --infobox "

#\Z1 NOVA PARTICAO:      NEUE PARTITION: \Zn
#           \Z4 $NACH \Zn

#"  8 40 

#sleep 3  



echo " HIER JETZT ALLE AUSGEFUEHRTEN FDISK -OPERATIONEN WIRKLICH DURCHFUEHREN : "  >> logfile 2>&1 
cat fdisk.machen  >> logfile 2>&1
/sbin/fdisk $NACH0 < fdisk.machen   >> logfile 2>&1        
/dev/makedevs.sh   >> logfile 2>&1


sync 

echo " 

*** neue  Partitionen : 

"   >> logfile 2>&1
/sbin/fdisk -lu $NACH0   >> logfile 2>&1

if test $TST -eq 1 ; then exit  ; fi ;

##### 1.2. System instalieren ##################################################################

dialog --title "installing  SYS  to  $NACH ..." --no-collapse  --colors  --infobox "

    \Zb\Z1 INSTALACAO        INSTALLIERUNG\Zn
            \Z4 $SIZEGB  GB \Zn
           para        nach 
          \Z4 $NACH \Zn
          (15 - 40 min)
              ...

     \Z3   Aguarde,       Abwarten,
 ate sair o CD,       bis CD rauskommt,  
  nao cancela !       nicht abbrechen ! \Zn  

   Se letras ou     Wenn Schrift oder
monitor ficarem     Bildschirm schwarz
  preto, tecla:     werden, druecken:
             \Z4 CTRL \Zn


"  20  40 


#sleep 3 

./copysys    >> logfile 2>&1


#echo  "System installiert.  Weitere Konfiguration im System selbst machen."



#dialog  --clear --infobox " " 0 0          # Versuch damit abzufangen dass Text nach Monitor-Timeout schwarz wird
mkdir -p /nach/var/log  ;  cp -f logfile  /nach/var/log/SYS_Linux.install.log ; cp -f logfile  /nach/SYS_Linux.install.log 

read PROBLEM REST < problem

if test $PROBLEM = 1 ; then
dialog --title "instalation ready but has any small problem .." --no-collapse --colors --msgbox "

 \Z1 INSTALACAO FEITA MAS   INSTALLATION ERFOLGT
 ESTA COM ALGUM PROBLEMA  ABER HAT KLEINE FEHLER \Zn 

"  9 50 

#sleep  20
# PROBLEM=21       # falls man Probleme beim mounten des installierten Systemes als 'grosses Problem' machen will und -> rescue

fi ;


if test $PROBLEM = 20 ; then
dialog --title "Install-CD defect (md5 wrong)" --no-collapse --colors --msgbox "

 \Z1 DVD DA INSTALACAO  CORUMPIDO,    INSTALL-CD FEHLERHAFT,
 A TELECARREGAR / COPIAR OUTRA VEZ    NOCHMAL DOWNLOADEN / KOPIEREN \Zn 

"  9 65

#sleep  20

fi ;


if test $TST -eq 2 ; then exit  ; fi ;


fi ;





if test $PROBLEM -le 10 ; then  


### 1.3. fertig falls Installation und diese erfolgreich war #####################################################################

dialog --title "remove the CD and press RESET for reboot !!" --no-collapse --colors --infobox "

   \Z1 RELANCAR O COMPUTADOR      NEUSTART DES RECHNERS \Zn


              \Z4\Zb Favor tira      Bitte das CD aus
          o CD do drive !      dem Laufwerk nehmen !\Zn 


   *** \Z3 Relanca c/o butao \Zn *** \Z3 Zum neustarten  
             \Z4 RESET  \Zn ***      \Z3 Knopf \Zn \Z4 RESET \Z3 druecken\Zn
  Mais tarde, digita como      Spaeter als Benutzer
   usuario =\Zn \Z4 root \Zn ! ***      = \Z4 root \Z3 eingeben \Zn ! ***

 
  Lingua, Teclado, Video,      Sprache, Tastatur, Monitor, 
Som, Internet, Aparencia:      Sound, Internet, Verhalten:
   Qualquer \Z3 configuracao \Zn    Alle \Z3 Konfigurierung \Zn 
     já\Z1 se faz no sistema      erfolgt im istallierten
               instalado:      System:
  \Zn \Z4 Centro de Controle \Zn ,  \Z4 Kontrollzentrum \Zn ,  
         \Z4 sound config \Zn ,  \Z4 sound config \Zn ,   
             \Z4 ADSL config \Zn\Z4 ADSL config \Zn
                        ...
           

"  28 60

#sleep 7

 
read TST SIZE NACH0 NACH VON KLEINER OLDSYS WINDOWS REST < installinfo


# Nicht reboot mit CD im Laufwerk, sonst erneute Instalierung
umount $VON   >> logfile  2>&1  ;  eject $VON     
sleep 15
mount $VON /von    >> logfile  2>&1 ; OBCDDRAUSSEN=$? 
if test $OBCDDRAUSSEN != 32 ; then
umount $VON    >> logfile  2>&1 ;  eject $VON     

cp -f logfile  /nach/var/log/SYS_Linux.install.log ; cp -f logfile  /nach/SYS_Linux.install.log 


dialog --title "remove CD , then press ENTER or RESET !!"  --no-collapse --colors --msgbox "
 \Z1 Tira o CD, e depois    CD rausnehmen, danach
aperta \Zn \Z4 ENTER \Zn \Z1 !!! \Zn  \Z4 ENTER \Zn \Z1 druecken !!! \Zn
" 10 52
fi ;     # end OBCDDRAUSSEN = 0
#/sbin/brc  ;  /sbin/reboot -f                       # spaeter raus um nachfolgenden Weg zu durchlaufen

fi ;     # end PROBLEM -le 10 


#read RESCUE REST < /rescue                          # rescue kann waehrend der Installierung geaendert werden, zBsp bei Fehlern 
if test $PROBLEM -gt 10 ;  then  RESCUE=1 ; fi ;      # Falls irgendein Problem bei der Instalation, ins rescue-System gehen


fi ;     # end RESCUE -eq 0  





echo $RESCUE " = RESCUE in init "   >> logfile  2>&1


#### Alle Partitionen mounten            Spaeter ggf verbessern und Ergebnisse von mkpart nutzen   
#     falls Installation  also PROBLEM >0, oder aber unbedingt,  auf alle Partitionen auch logfile sichern (spaeter ggf weg)
for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ; do
for J in hda hdb hdc hdd sda sdb sdc sdd ; do  
mkdir -p /$J$I > /dev/zero 
IFMOUNT=32 
if test $IFMOUNT -ne 0 ; then ntfs-3g /dev/$J$I /$J$I -o force,rw,remove_hiberfile,show_sys_files   >> logfile  2>&1 ; IFMOUNT=$?; fi ;   
if test $IFMOUNT -ne 0 ; then mount /dev/$J$I /$J$I   >> logfile  2>&1   ; IFMOUNT=$?; fi ; 
echo $J$I " ifmount: " $IFMOUNT    >> logfile  2>&1 
if test $IFMOUNT -ne 32 ; then
#if test $PROBLEM -gt 0 ; then 
mkdir -p /$J$I/var/log   >> logfile  2>&1 
cp -f logfile  /$J$I/var/log/SYS_Linux.install.log    >> logfile  2>&1 
cp -f logfile  /$J$I/SYS_Linux.install.log    >> logfile  2>&1 
#fi ; 
fi ;
if test $IFMOUNT -eq 32 ; then  rm -r /$J$I  >> logfile  2>&1 ; fi ;     # Falls mounten erfolglos, leeren Ordner loeschen
# sync ; umount /dev/$J$I ; rm -r /$J$I                                          # falls nur temporaeres mounten, etwa um was zu schreiben
done 
done
sync 




#### 2. Rescue-System  (falls gewählt oder falls fehlgeschlagene Installation) ######################################################


if test $RESCUE -gt 0 ; then         # RESCUE=0 nur bei fehlerfreier Instalation, falls auch dann ins RRESCUE-System
                                     #   gegangen werden soll (etwa weil reboot nicht funktioniert), diese Abfrage raus    

clear 
dialog --title "RESCUE -- for leave press CTRL-ALT-DEL"   --no-collapse --colors --infobox "
             \Zb\Z1 SOCORRO \Zn \Zb\Z1 RESCUE \Zn
      
\Z5 Sistema para tarefas     System fuer kleine
 pequenas e consertos      Arbeiten und Notfaelle\Zn      
      
      \Z3 Para terminar,     Zum Beenden, 
     aperta os butoes     zusammen die Tasten \Zn
                 \Z4 CTRL ALT DEL \Zn \Z3 
    juntos ou digita:        druecken oder eingeben:\Zn 
                    \Z4  exit \Zn
"  14 54 

sleep 5


rm scr*    >> logfile  2>&1 

clear 

cat rescue.txt 
/bin/bash -li  

clear 

fi ;   # end RESCUE -gt 0 


###  3.  Reboot .   Geht nicht korrekt ############################################################################# 

dialog --title "rebooting ..." --no-collapse --colors --infobox "
\Z1 relancando ...     neu starten ... \Zn
"  6 40 
#sync 
/sbin/brc   >> /dev/zero 2>&1
/sbin/reboot -f   >> /dev/zero 2>&1

if test $TST = 0 ; then
dialog --title "press CTRL-ALT-DEL for reboot !!" --no-collapse --colors --infobox "
\Z1APERTA juntos:       Gleichzeitig drücken: \Zn
         \Z4 CTRL ALT DEL \Zn
"  7 44 
#chroot /nach  reboot -fph       # wenn eject nicht geht,  halt statt reboot  
sleep 60
/sbin/halt -fn     # sicherheitshalber    :| 
fi ;  
echo "Halt"   

# 
   


