source: MondoRescue/branches/stable/mindi/install.sh@ 1312

Last change on this file since 1312 was 1280, checked in by Bruno Cornec, 17 years ago

First try to add HP Hardware support in mindi
Requires perl and dmidecode

  • Property svn:keywords set to Id
File size: 5.3 KB
Line 
1#!/bin/bash
2#
3# $Id: install.sh 1280 2007-03-28 14:21:54Z bruno $
4#
5
6if [ ! -f "mindi" ] ; then
7 echo "Please 'cd' to the directory you have just untarred." >> /dev/stderr
8 exit 1
9fi
10
11if [ "_$PREFIX" != "_" ]; then
12 local=${HEAD}$PREFIX
13 sublocal=$PREFIX
14 if [ "_$CONFDIR" != "_" ]; then
15 conf=${HEAD}$CONFDIR/mindi
16 subconf=$CONFDIR/mindi
17 else
18 echo "CONFDIR should be defined if PREFIX is defined"
19 exit -1
20 fi
21else
22 local=/usr/local
23 sublocal=$local
24 if [ -f /usr/sbin/mindi ]; then
25 echo "WARNING: /usr/sbin/mindi exists. You should probably remove the mindi package !"
26 fi
27 conf=$local/etc/mindi
28 subconf=$conf
29 echo $PATH | grep $local/sbin > /dev/null || echo "Warning - your PATH environmental variable is BROKEN. Please add $local/sbin to your PATH."
30fi
31
32if uname -a | grep Knoppix > /dev/null || [ -e "/ramdisk/usr" ] ; then
33 local=/ramdisk/usr
34 sublocal=$local
35 conf=/ramdisk/etc
36 subconf=$conf
37 export PATH=/ramdisk/usr/sbin:/ramdisk/usr/bin:/$PATH
38fi
39
40MINDIVER=`cat VERSION`
41MINDIREV=`cat REVISION`
42echo "mindi ${MINDIVER}-r${MINDIREV} will be installed under $local"
43
44if [ _"$MANDIR" == _"" ]; then
45 MANDIR=$local/share/man/man8
46else
47 MANDIR=${HEAD}$MANDIR/man8
48fi
49if [ _"$DOCDIR" == _"" ]; then
50 DOCDIR=$local/share/doc/mindi-$MINDIVER
51else
52 DOCDIR=${HEAD}$DOCDIR/mindi-$MINDIVER
53fi
54if [ _"$LIBDIR" == _"" ]; then
55 ARCH=`/bin/arch`
56 echo $ARCH | grep -E '^i[0-9]86$' &> /dev/null && ARCH=i386 && locallib=$local/lib
57 echo $ARCH | grep -E '^x86_64$' &> /dev/null && locallib=$local/lib64
58 echo $ARCH | grep -E '^ia64$' &> /dev/null && locallib=$local/lib
59 sublocallib="$locallib/mindi"
60else
61 locallib=${HEAD}$LIBDIR
62 sublocallib="$LIBDIR/mindi"
63fi
64
65echo "Creating target directories ..."
66install -m 755 -d $conf $conf/deplist.d $locallib/mindi $MANDIR $local/sbin $DOCDIR
67
68echo "Copying files ..."
69install -m 644 isolinux.cfg msg-txt sys-disk.raw.gz isolinux-H.cfg syslinux.cfg syslinux-H.cfg dev.tgz $locallib/mindi
70install -m 644 distributions/conf/deplist.d/* $conf/deplist.d
71install -m 444 distributions/conf/mindi.conf.dist $conf
72#
73# Compute mindi.conf.dist (cecked by mindi) to avoid changes here
74# Modify the checksum file so that path is correct at execution time
75#
76md5sum $conf/mindi.conf.dist > $conf/mindi.conf.dist.md5
77perl -pi -e "s~$conf~$subconf~" $conf/mindi.conf.dist.md5
78#
79# Example of mindi.conf
80#
81if [ ! -e $conf/mindi.conf ]; then
82 cat > $conf/mindi.conf << EOF
83#
84# Configuration file for mindi
85#
86# By default values are taken from $conf/mindi.conf.dist
87# You can override them here
88#
89# e.g.
90#
91#mindi_tmp_dir="/var/tmp"
92#
93EOF
94 chmod 644 $conf/mindi.conf
95fi
96
97#
98# Example of deplist.txt
99#
100if [ ! -e $conf/deplist.txt ]; then
101 cat > $conf/deplist.txt << EOF
102# mindi additional dependency list
103#
104# NB:
105# You have to give an absolute path
106# If you want to add something, just add it on its own line. K.I.S.S.
107
108EOF
109 chmod 644 $conf/deplist.txt
110fi
111
112cp -af rootfs aux-tools $locallib/mindi
113if [ -e FindDistroFailsafe ]; then
114 cp -af FindDistroFailsafe $locallib/mindi
115fi
116chmod 755 $locallib/mindi/rootfs/sbin/*
117chmod 755 $locallib/mindi/aux-tools/sbin/*
118
119# Substirute variables for init
120perl -pi -e "s~^MINDI_VER=VVV~MINDI_VER=$MINDIVER~ ; s~^MINDI_REV=RRR~MINDI_REV=$MINDIREV~" $locallib/mindi/rootfs/sbin/init
121
122# Substitute variables for mindi
123sed -e "s~^MINDI_PREFIX=XXX~MINDI_PREFIX=$sublocal~" -e "s~^MINDI_CONF=YYY~MINDI_CONF=$subconf~" -e "s~^MINDI_VER=VVV~MINDI_VER=$MINDIVER~" -e "s~^MINDI_REV=RRR~MINDI_REV=$MINDIREV~" -e "s~^MINDI_LIB=LLL~MINDI_LIB=$sublocallib~" mindi > $local/sbin/mindi
124sed -e "s~^my \$mindiconf=YYY~my \$mindiconf=$subconf;~" mindi-bkphw > $local/sbin/mindi-bkphw
125chmod 755 $local/sbin/mindi $local/sbin/mindi-bkphw
126install -m 755 parted2fdisk.pl $local/sbin
127install -m 755 analyze-my-lvm $locallib/mindi
128
129install -m 644 mindi.8 $MANDIR
130install -m 644 ChangeLog COPYING README README.busybox README.ia64 README.pxe TODO INSTALL svn.log $DOCDIR
131
132if [ "_$PREFIX" = "_" ] && [ ! -f $locallib/mindi/rootfs/bin/busybox ]; then
133 echo "WARNING: no busybox found, mindi will not work on this arch ($ARCH)"
134fi
135
136# Managing parted2fdisk
137if [ "$ARCH" = "ia64" ] ; then
138 (cd $local/sbin && ln -sf parted2fdisk.pl parted2fdisk)
139 make -f Makefile.parted2fdisk DEST=$locallib/mindi install
140 if [ -f $locallib/mindi/rootfs/sbin/parted2fdisk-$ARCH ]; then
141 echo "Installing parted2fdisk ..."
142 install -s -m 755 $locallib/mindi/rootfs/sbin/parted2fdisk-$ARCH $locallib/mindi/rootfs/sbin/parted2fdisk
143 install -s -m 755 $locallib/mindi/rootfs/sbin/parted2fdisk-$ARCH $local/sbin/parted2fdisk
144 else
145 echo "WARNING: no parted2fdisk found, mindi will not work on this arch ($ARCH)"
146 fi
147else
148 # FHS requires fdisk under /sbin
149 (cd $local/sbin && ln -sf /sbin/fdisk parted2fdisk)
150 echo "Symlinking fdisk to parted2fdisk"
151 ( cd $locallib/mindi/rootfs/sbin && ln -sf fdisk parted2fdisk)
152fi
153# Remove left parted2fdisk
154rm -f $locallib/mindi/rootfs/sbin/parted2fdisk-*
155
156if [ "$RPMBUILDMINDI" != "true" ]; then
157 chown -R root:root $locallib/mindi $conf $DOCDIR
158 chown root:root $local/sbin/mindi $MANDIR/mindi.8 $locallib/mindi/analyze-my-lvm $local/sbin/parted2fdisk.pl
159 if [ "$ARCH" = "ia64" ] ; then
160 chown root:root $local/sbin/parted2fdisk
161 fi
162fi
163
164# Special case for SuSE family where doc is put elsewhere in the RPM
165if [ -e /etc/SuSE-release ]; then
166 rm -rf $DOCDIR
167fi
168
169# Special case for Debian family where doc is put elsewhere in the DEB
170if [ -e /etc/debian_version ]; then
171 rm -rf $DOCDIR
172fi
173
174exit 0
Note: See TracBrowser for help on using the repository browser.