#!/bin/bash MYDIR=`pwd` BROOT=$MYDIR/build_root.REPLACEME MIRROR_DIR=$MYDIR/pkg_repo TOOLS_DIR='LinHES-dev' ARCH=REPLACEME # Make sure only root can run our script if [[ $EUID -ne 0 ]]; then echo "This script must be run as root" 1>&2 exit 1 fi if [ ! -d $BROOT ] then echo "build_root directory not found" exit 1 fi if [ -d LinHES-PKGBUILD ] then echo "Found LinHES-PKGBUILD" else echo "***********************************************************************************************" echo "* Couldn't find LinHES-PKGBUILD *" echo "* Please checkout the repository into the current directory *" echo "* The LinHES-PKGBUILD git repoistory is at knoppmyth.net/mount/repository/LinHES-PKGBUILD.git *" echo "***********************************************************************************************" exit 1 fi mounted=`mount` umountlist=" " echo $mounted | grep -q $BROOT/proc status=$? if [ ! status = 0 ] then mount -t proc proc $BROOT/proc umountlist="$umountlist proc" else echo "proc alredy mounted" fi echo $mounted | grep -q $BROOT/sys status=$? if [ ! $status = 0 ] then mount -t sysfs sysfs $BROOT/sys umountlist="$umountlist sys" else echo "sys alredy mounted" fi [ -e $BROOT/dev/random ] || mknod $BROOT/dev/random c 1 8 [ -e $BROOT/dev/urandom ] || mknod $BROOT/dev/urandom c 1 9 [ -e $BROOT/dev/tty ] || mknod $BROOT/dev/tty c 5 0 echo $mounted | grep -q $BROOT/dev/pts status=$? if [ ! $status = 0 ] then [ -e $BROOT/dev/pts ] || mkdir -p $BROOT/dev/pts mount -t devpts devpts $BROOT/dev/pts umountlist="$umountlist dev/pts" else echo "/dev/pts alredy mounted" fi #create dir for build_tools if [ ! -e $BROOT/build_tools ] then mkdir $BROOT/build_tools fi #mount build_tools echo $mounted | grep -q $BROOT/build_tools status=$? if [ ! $status = 0 ] then mount --bind $MYDIR/$TOOLS_DIR/build_tools $BROOT/build_tools umountlist="$umountlist build_tools" else echo "/build_tools alredy mounted" fi #create dir for the PKGBUILDS if [ ! -e $BROOT/data/LinHES-PKGBUILD ] then mkdir -p $BROOT/data/LinHES-PKGBUILD fi #mount pkg_repo echo $mounted | grep -q $BROOT/data/LinHES-PKGBUILD status=$? if [ ! $status = 0 ] then mount --bind $MYDIR/LinHES-PKGBUILD $BROOT/data/LinHES-PKGBUILD umountlist="$umountlist data/LinHES-PKGBUILD" else echo "pkg_repo alredy mounted" fi #create dir for pkg_repo / local mirror if [ ! -e $BROOT/data/pkg_repo ] then mkdir -p $BROOT/data/pkg_repo fi #mount pkg_repo echo $mounted | grep -q $BROOT/data/pkg_repo status=$? if [ ! $status = 0 ] then mount --bind $MYDIR/pkg_repo $BROOT/data/pkg_repo umountlist="$umountlist data/pkg_repo" else echo "pkg_repo alredy mounted" fi #copy in some files [ -e $BROOT/etc/resolv.conf ] || cp -f /etc/resolv.conf $BROOT/etc/resolv.conf if [ ! -f $BROOT/etc/bashrc ] then cp -f $MYDIR/$TOOLS_DIR/templates/etc/bashrc $BROOT/etc/ cp -f $MYDIR/$TOOLS_DIR/templates/etc/kmdev.sh $BROOT/etc/profile.d/kmdev.sh cp -f $MYDIR/$TOOLS_DIR/templates/etc/.bashrc $BROOT/root/ cp -f $MYDIR/$TOOLS_DIR/templates/etc/.bash_profile $BROOT/root/ chmod 755 $BROOT/root/.bashrc chmod 755 $BROOT/root/.bash_profile chmod 755 $BROOT/etc/profile.d/kmdev.sh fi #change the "xterm" title so we know it's a chroot echo -e "\e]0;chroot-pkgbuild\a" #used for Konsole echo -e "\e]30;chroot-pkgbuild\a" env -i /usr/sbin/chroot $BROOT /bin/bash --login for i in $umountlist do #echo "unmounting $BROOT/$i" umount $BROOT/$i done echo -e "\e]30;normal\a" echo -e "\e]0;normal\a"