Subversion Repositories wimsdev

Rev

Blame | Last modification | View Log | RSS feed

#! /bin/sh

################# Adjustable parameters ########################

# Where to put the target.
export target=/tmp/wims-deb

# Structure under debian. usrdir for system files, vardir for data.
export usrdir=/usr/share/wims
export vardir=/var/lib/wims
export usr=$target$usrdir
export var=$target$vardir

# usrdir or vardir. Don't change this.
export wimshome=$usrdir

# Files and directories to put to usrdir.
export usrcontent="bin lib other public_html src \
        README compile localwims"

# Files and directories to put to vardir.
export varcontent="download log s2 sessions tmp \
        update.sh"

# Empty directories to add to usrdir and vardir.
export usradd=""
export varadd="backup w"

# Directories in which we should add a .wimshome indicating file.
export addhome="$usr $var $var/w"

# usrdir directories to be moved to vardir/w.
# These are things in public_html (hence usrdir) that may be written to.
# Each word must have two components separated by a comma:
# First component is the target directory name under var/w, 
# and the second is the source directory under public_html.
export wtrans="adm/local,modules/adm/local
devel,modules/devel
local,modules/local
themes/local,themes/local"

############### End of modifiable contents ######################

cd `dirname $0`/..
export whome=`pwd`

cat <<@
This script generates a WIMS directory structure conform de debian standard:
system files in /usr/share/wims and data files in /var/lib/wims.

It should be run on a freshly decompressed and compiled WIMS distribution.

The result will be put into $target/.
@

echo "Clean up $target first..."
rm -fR $target
if [ -e $target ]; then
 echo "Unable to clean $target. Please verify your access rights."
 exit
fi

mkdir -p $usr $var
if [ ! -d $usr ]; then
 echo "Unable to create directory $target. Please check your access rights."
 exit
fi

echo $wimshome >$target/wimshome
echo "Install $usr..."
for d in $usrcontent; do
 cp -PpR $d $usr
 ln -s $usrdir/$d $var
done
for d in $usradd; do
 mkdir -p $usr/$d
 ln -s $usrdir/$d $var
done
ln -s $vardir $usr/var
mv -f $usr/public_html/w $var
ln -s $vardir/w $usr/public_html
mkdir -p $var/w/modules
for d in $wtrans; do
 trans1=`echo $d | cut -d, -f1`
 trans2=`echo $d | cut -d, -f2`
 rm -fR $usr/public_html/$trans2
 mkdir -p $var/w/$trans1
 cp $target/wimshome $var/w/$trans1/.wimshome
 ln -s $vardir/w/$trans1 $usr/public_html/$trans2
done
echo "Install $var..."
for d in $varcontent; do
 cp -PpR $d $var
 ln -s $vardir/$d $usr
done
for d in $varadd; do
 mkdir -p $var/$d
 ln -s $vardir/$d $usr
done
ln -s $usrdir $var/usr
chmod og-rwx $var/backup

echo Making home directory references...
find $target -name .wimshome -exec cp $target/wimshome '{}' \;
for d in $addhome; do
 cp $target/wimshome $d/.wimshome
done
rm -f $target/wimshome

usage=`du -hs $usr | cut -f1`
echo "Size of $usr: $usage."
usage=`du -hs $var | cut -f1`
echo "Size of $var: $usage."