source: MondoRescue/branches/stable/mindi/rootfs/sbin/install-additional-tools@ 1904

Last change on this file since 1904 was 1904, checked in by Bruno Cornec, 16 years ago

merge -r 1889:1902 svn+ssh://bruno@svn.mondorescue.org/mondo/svn/mondorescue/branches/2.2.6

  • Property svn:keywords set to Id
File size: 2.7 KB
Line 
1#!/bin/sh
2#
3# $Id: install-additional-tools 1904 2008-04-09 23:20:42Z bruno $
4#
5########################################################################
6
7
8Die() {
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
19LogIt "Starting install-additional-tools"
20mountdir=$GROOVY
21# Should be the same as in mindi => conf param
22mkdir -p $mountdir
23res=0
24if [ -e "/tmp/TAPEDEV-HAS-DATA-DISKS" ] ; then
25 LogIt "I am assuming the data disks' contents are already in $mountdir."
26else
27 LogIt "PLEASE WAIT. Untarring data content" 2
28
29 mountpoint=/dev/null
30 [ -e "/tmp/CDROM-LIVES-HERE" ] && mountpoint=/mnt/cdrom/images
31 tarball=$mountpoint/all.tar.gz
32 if [ -e "/tmp/CDROM-LIVES-HERE" ] ; then
33 [ -e "$tarball" ] || LogIt "Can't find CD's $tarball" 1
34 fi
35
36 old_pwd=`pwd`
37 cd $mountdir
38 counter=0
39 for fname in `tar -zxvf $tarball` ; do
40 counter=$(($counter+1))
41 [ "$(($counter % 4))" -eq "0" ] && echo -en "\r\t\t\t\t\t\t\t\\"
42 [ "$(($counter % 4))" -eq "1" ] && echo -en "\r\t\t\t\t\t\t\t|"
43 [ "$(($counter % 4))" -eq "2" ] && echo -en "\r\t\t\t\t\t\t\t/"
44 [ "$(($counter % 4))" -eq "3" ] && echo -en "\r\t\t\t\t\t\t\t-"
45 done
46 cd $old_pwd
47 echo -e -n "\r"
48 [ ! -e "/tmp/CDROM-LIVES-HERE" ] && umount $mountpoint
49 sleep 1
50fi
51
52LogIt "Recombining large files..." 1
53biggienumber=0
54while [ -e "$mountdir/slice-$biggienumber.name" ] ; do
55 stub=$mountdir/slice-$biggienumber
56 biggiefname=`cat $stub.name`
57 if [ -f $biggiefname ]; then
58 LogIt "$biggiefname already exists - skipped" 1
59 biggienumber=$(($biggienumber+1))
60 continue
61 fi
62 biggiefsize=`cat $stub.size`
63 rm -f $stub.name $stub.size
64 > /tmp/out.dat
65 sliceno=0
66 while [ "$sliceno" -le "999" ] ; do
67 slicefile=$stub.
68 [ "$sliceno" -lt "100" ] && slicefile="$slicefile"0
69 [ "$sliceno" -lt "10" ] && slicefile="$slicefile"0
70 slicefile="$slicefile"$sliceno
71 [ ! -e "$slicefile" ] && break
72 cat $slicefile >> /tmp/out.dat
73 rm -f $slicefile
74 sliceno=$(($sliceno+1))
75 done
76
77 LogIt "$biggiefname ($biggiefsize KB) restored. $sliceno slices." 1
78
79 mkdir -p $biggiefname
80 rmdir $biggiefname 2> /dev/null
81 chmod +x /tmp/out.dat
82 cp -f /tmp/out.dat $biggiefname
83 rm -f /tmp/out.dat
84 biggienumber=$(($biggienumber+1))
85done
86rm -f /slice*
87
88LogIt "Populating / with tar file content..." 1
89
90cd $mountdir
91if [ -f etc/fstab ]; then
92 cp etc/fstab /tmp
93fi
94if [ -f etc/raidtab ]; then
95 cp etc/raidtab /tmp
96fi
97
98liste=`ls`
99if [ "$liste" ]; then
100 tar cf - $liste | (cd / ; tar xf -)
101 rm -fr $liste
102fi
103cd /
104
105sync;sync;sync
106
107LogIt "Done." 1
108
109which gawk 2> /dev/null > /dev/null
110[ "$?" -ne "0" ] && which awk 2> /dev/null > /dev/null && ln -sf `which awk` /usr/bin/gawk
111
112LogIt "Exiting install-additional-tools"
113exit 0
114
115# exit $res
116
Note: See TracBrowser for help on using the repository browser.