#!__SHELLPATH__
##############################################################################
#
# install.sh
# Install jail files in the system
# should be called by src/Makefile
#
# Juan M. Casillas <assman@gsyc.inf.uc3m.e>
#
# needs:
#
# cat
# echo -e
# mkdir
# basename
#
# $Id: install.sh,v 1.2 2001/10/26 09:36:53 assman Exp $
#
# $Log: install.sh,v $
# Revision 1.2 2001/10/26 09:36:53 assman
#
#
##############################################################################
TMPFILE=jail.tmp
# ----------------------------------------------------------------------------
install_file() {
filename=$1
fname=`basename $filename`
dest=$2
perm=$3
own=$4
grp=$5
mkdir -p $dest
cp $filename $dest
chown $own:$grp ${dest}/${fname}
chmod $perm ${dest}/${fname}
}
# ----------------------------------------------------------------------------
parse_tag() {
file=$1;
tag=$2;
value=$3;
value=`printf "%s\n" $value | sed -e "s/\\\//\\\\\\\\\//g"`
cat $file | sed -e "s/$tag/$value/" > $TMPFILE
mv $TMPFILE $file
}
# ----------------------------------------------------------------------------
gen_jail_conf() {
cp etc/jail.conf jail.conf.tmp
parse_tag jail.conf.tmp __VERSION__ $1
parse_tag jail.conf.tmp __ARCH__ $2
parse_tag jail.conf.tmp __DEBUG__ $3
parse_tag jail.conf.tmp __INSTALLDIR__ $4
mv jail.conf.tmp jail.conf.sample
install_file jail.conf.sample $4/etc $5 $6 $7
rm jail.conf.sample
}
# ----------------------------------------------------------------------------
gen_libjail() {
cp lib/libjail.pm libjail.pm.tmp
parse_tag libjail.pm.tmp __INSTALLDIR__ $1
mv libjail.pm.tmp libjail.pm
install_file libjail.pm $1/lib $2 $3 $4
rm libjail.pm
}
# ----------------------------------------------------------------------------
gen_mkenv() {
cp bin/mkjailenv mkjailenv.tmp
parse_tag mkjailenv.tmp __INSTALLDIR__ $1
parse_tag mkjailenv.tmp __PERL__ $2
mv mkjailenv.tmp mkjailenv
install_file mkjailenv $1/bin $3 $4 $5
rm mkjailenv
}
# ----------------------------------------------------------------------------
gen_addjailsw() {
cp bin/addjailsw addjailsw.tmp
parse_tag addjailsw.tmp __INSTALLDIR__ $1
parse_tag addjailsw.tmp __PERL__ $2
mv addjailsw.tmp addjailsw
install_file addjailsw $1/bin $3 $4 $5
rm addjailsw
}
# ----------------------------------------------------------------------------
gen_addjailuser() {
cp bin/addjailuser addjailuser.tmp
parse_tag addjailuser.tmp __INSTALLDIR__ $1
parse_tag addjailuser.tmp __PERL__ $2
mv addjailuser.tmp addjailuser
install_file addjailuser $1/bin $3 $4 $5
rm addjailuser
}
# ----------------------------------------------------------------------------
gen_arch() {
for i in generic linux freebsd irix solaris; do
install_file lib/arch/$i/definitions $1/lib/arch/$i $2 $3 $4
install_file lib/arch/$i/functions $1/lib/arch/$i $2 $3 $4
done
}
# ----------------------------------------------------------------------------
if [ $# -ne 7 ]; then
echo "Bad arguments. Are you calling $0 from the src/Makefile?"
exit;
fi
VERSION=$1
ARCH=$2
DEBUG=$3
INSTALLDIR=$4
PERLPATH=$5
ROOTID=$6
ROOTGID=$7
install_file ./bin/jailuser $INSTALLDIR/bin 4755 $ROOTID $ROOTGID
gen_jail_conf $VERSION $ARCH $DEBUG $INSTALLDIR 755 $ROOTID $ROOTGID
gen_libjail $INSTALLDIR 755 $ROOTID $ROOTGID
gen_mkenv $INSTALLDIR $PERLPATH 755 $ROOTID $ROOTGID
gen_addjailsw $INSTALLDIR $PERLPATH 755 $ROOTID $ROOTGID
gen_addjailuser $INSTALLDIR $PERLPATH 755 $ROOTID $ROOTGID
gen_arch $INSTALLDIR 755 $ROOTID $ROOTGID
rm -f $TMPFILE
syntax highlighted by Code2HTML, v. 0.9.1