if [[ -z ${UNSHARE} ]] ; then
mount_args=
if type -P unshare >&/dev/null ; then
- UNSHARE=true exec unshare -m -- "$0" "$@"
+ uargs=( -m )
+ unshare -u -- true >&/dev/null && uargs+=( -u )
+ unshare -i -- true >&/dev/null && uargs+=( -i )
+ unshare -p -- true >&/dev/null && uargs+=( -p -f --mount-proc )
+ UNSHARE=true exec unshare "${uargs[@]}" -- "$0" "$@"
fi
else
mount_args='-n'
main() {
bootstrap "$@"
- local mounts=( proc sys tmp dev dev/pts dev/shm usr/portage usr/portage/distfiles usr/local/src )
+ local mounts=( proc sys tmp dev dev/pts dev/shm run usr/portage usr/portage/distfiles usr/local/src )
local chroot=${0%/*}
case ${chroot} in
-u) cmd='umount' ;;
-m) mounts+=( "$2" ); shift ;;
-d) chroot=$(realpath "$2"); shift ;;
- -h) usage ;;
+ --help|-h) usage ;;
-*) echo "${0##*/}: unknown option $1"; exit 1 ;;
*) break ;;
esac