[1] | 1 | #!/bin/sh
|
---|
| 2 | #
|
---|
[866] | 3 | # $Id: install-additional-tools 1841 2007-12-14 23:44:42Z bruno $
|
---|
[1] | 4 | #
|
---|
| 5 | ########################################################################
|
---|
| 6 |
|
---|
| 7 |
|
---|
| 8 | Die() {
|
---|
| 9 | echo "Fatal error! $1" >> /dev/stderr
|
---|
| 10 | exit 1
|
---|
| 11 | }
|
---|
| 12 |
|
---|
| 13 |
|
---|
| 14 |
|
---|
| 15 | # ------------ main -----------
|
---|
| 16 |
|
---|
| 17 | # if the file '/tmp/CDROM-LIVES-HERE' exists then we should use the CD
|
---|
| 18 |
|
---|
| 19 | LogIt "Starting install-additional-tools"
|
---|
| 20 | mountdir=$GROOVY
|
---|
[1734] | 21 | # Should be the same as in mindi => conf param
|
---|
| 22 | MAX_DISKS=99
|
---|
[1] | 23 | mkdir -p $mountdir
|
---|
| 24 | diskno=1
|
---|
| 25 | res=0
|
---|
| 26 | if [ -e "/tmp/TAPEDEV-HAS-DATA-DISKS" ] ; then
|
---|
| 27 | LogIt "I am assuming the data disks' contents are already in $mountdir."
|
---|
| 28 | else
|
---|
[1734] | 29 | while [ "$diskno" -lt "$MAX_DISKS" ] ; do
|
---|
| 30 | LogIt "PLEASE WAIT. Untarring disk #$diskno" 2
|
---|
| 31 | untar $diskno $mountdir
|
---|
[866] | 32 | res=$(($res+$?))
|
---|
| 33 | [ -e "/LAST-DISK" ] && diskno=999
|
---|
| 34 | diskno=$(($diskno+1))
|
---|
| 35 | [ -e "/tmp/CDROM-LIVES-HERE" ] && [ ! -f "/mnt/cdrom/images/$diskno.tar.gz" ] && break
|
---|
[1] | 36 | done
|
---|
| 37 | fi
|
---|
| 38 | rm -f /LAST-DISK
|
---|
| 39 |
|
---|
[1734] | 40 | LogIt "Recombining large files..." 1
|
---|
[1] | 41 | biggienumber=0
|
---|
| 42 | while [ -e "$mountdir/slice-$biggienumber.name" ] ; do
|
---|
| 43 | stub=$mountdir/slice-$biggienumber
|
---|
| 44 | biggiefname=`cat $stub.name`
|
---|
[1734] | 45 | if [ -f $biggiefname ]; then
|
---|
| 46 | LogIt "$biggiefname already exists - skipped" 1
|
---|
| 47 | biggienumber=$(($biggienumber+1))
|
---|
| 48 | continue
|
---|
| 49 | fi
|
---|
[1] | 50 | biggiefsize=`cat $stub.size`
|
---|
| 51 | rm -f $stub.name $stub.size
|
---|
| 52 | > /tmp/out.dat
|
---|
| 53 | sliceno=0
|
---|
| 54 | while [ "$sliceno" -le "999" ] ; do
|
---|
[866] | 55 | slicefile=$stub.
|
---|
[1] | 56 | [ "$sliceno" -lt "100" ] && slicefile="$slicefile"0
|
---|
[866] | 57 | [ "$sliceno" -lt "10" ] && slicefile="$slicefile"0
|
---|
| 58 | slicefile="$slicefile"$sliceno
|
---|
| 59 | [ ! -e "$slicefile" ] && break
|
---|
| 60 | cat $slicefile >> /tmp/out.dat
|
---|
| 61 | rm -f $slicefile
|
---|
| 62 | sliceno=$(($sliceno+1))
|
---|
| 63 | done
|
---|
[1] | 64 |
|
---|
[1734] | 65 | LogIt "$biggiefname ($biggiefsize KB) restored. $sliceno slices." 1
|
---|
[1] | 66 |
|
---|
| 67 | mkdir -p $biggiefname
|
---|
| 68 | rmdir $biggiefname 2> /dev/null
|
---|
| 69 | chmod +x /tmp/out.dat
|
---|
| 70 | cp -f /tmp/out.dat $biggiefname
|
---|
| 71 | rm -f /tmp/out.dat
|
---|
| 72 | biggienumber=$(($biggienumber+1))
|
---|
| 73 | done
|
---|
| 74 | rm -f /slice*
|
---|
| 75 |
|
---|
[1734] | 76 | LogIt "Populating / with tar file content..." 1
|
---|
[1] | 77 |
|
---|
| 78 | cd $mountdir
|
---|
[1748] | 79 | if [ -f etc/fstab ]; then
|
---|
[1841] | 80 | cp etc/fstab /tmp
|
---|
[1748] | 81 | fi
|
---|
| 82 | if [ -f etc/raidtab ]; then
|
---|
[1841] | 83 | cp etc/raidtab /tmp
|
---|
[1748] | 84 | fi
|
---|
[1] | 85 |
|
---|
[1734] | 86 | liste=`ls`
|
---|
| 87 | if [ "$liste" ]; then
|
---|
| 88 | tar cf - $liste | (cd / ; tar xf -)
|
---|
| 89 | rm -fr $liste
|
---|
| 90 | fi
|
---|
[229] | 91 | cd /
|
---|
[1] | 92 |
|
---|
| 93 | sync;sync;sync
|
---|
| 94 |
|
---|
[1734] | 95 | LogIt "Done." 1
|
---|
[1] | 96 |
|
---|
| 97 | which gawk 2> /dev/null > /dev/null
|
---|
| 98 | [ "$?" -ne "0" ] && which awk 2> /dev/null > /dev/null && ln -sf `which awk` /usr/bin/gawk
|
---|
| 99 |
|
---|
| 100 | LogIt "Exiting install-additional-tools"
|
---|
| 101 | exit 0
|
---|
| 102 |
|
---|
| 103 | # exit $res
|
---|
| 104 |
|
---|