void-packages

Void Source Packages
git clone git://ezup.dev/void-packages.git
Log | Files | Refs | README | LICENSE

proot.sh (682B)


      1#!/bin/sh
      2#
      3# This chroot script uses proot (see http://proot.me)
      4#
      5readonly MASTERDIR="$1"
      6readonly DISTDIR="$2"
      7readonly HOSTDIR="$3"
      8readonly EXTRA_ARGS="$4"
      9shift 4
     10
     11if ! command -v proot >/dev/null 2>&1; then
     12	exit 1
     13fi
     14
     15if [ -z "$MASTERDIR" -o -z "$DISTDIR" ]; then
     16	echo "$0 MASTERDIR/DISTDIR not set"
     17	exit 1
     18fi
     19
     20# proot does not properly return the resultcode. Workaround this
     21RESULT=$(mktemp) || exit 1
     22
     23PROOT_NO_SECCOMP=1 proot -r $MASTERDIR -w / -b "$RESULT:/.result" -b $DISTDIR:/void-packages \
     24	${HOSTDIR:+-b $HOSTDIR:/host} -b /proc:/proc -b /dev:/dev \
     25	-b /sys:/sys $EXTRA_ARGS /bin/sh -c '$@; echo $? > /.result' $0 $@
     26
     27rv=$(cat "$RESULT")
     28rm "$RESULT"
     29
     30exit $rv