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