diff options
Diffstat (limited to 'templates/enter_dev_chroot.sh')
-rw-r--r-- | templates/enter_dev_chroot.sh | 178 |
1 files changed, 178 insertions, 0 deletions
diff --git a/templates/enter_dev_chroot.sh b/templates/enter_dev_chroot.sh new file mode 100644 index 0000000..8f5eb40 --- /dev/null +++ b/templates/enter_dev_chroot.sh @@ -0,0 +1,178 @@ +#!/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" + |