#!/usr/bin/env bash
set +e
DESTDIR="$1"
if [[ $UID -ne 0 ]] ; then
    echo "You must be root!"
    exit 1
fi
# $1 will be something like /dev/sda1
if [[ -b "$1" ]] ; then
    DESTDIR=$(mktemp -d)
    disk=$(echo "$1" | sed 's/\/dev\///')
    source /usr/bin/pardus-mount-rootfs
fi
shift
if [[ "$DESTDIR" == "" ||  ! -f "$DESTDIR/etc/os-release" ]] ; then
    echo "Target filesystem is invalid: $DESTDIR"
    exit 1
fi

SHELL=/bin/bash unshare --fork --pid chroot "$DESTDIR" "$@"
status=$?
if [[ -d /sys/firmware/efi/ ]] ; then
    while umount "$DESTDIR/sys/firmware/efi/efivars" 2>/dev/null ; do : ;done
fi
for dir in dev/pts dev/shm dev sys proc run media ; do
    while umount "$DESTDIR/$dir" 2>/dev/null; do : ;done
done
umount -lf "$DESTDIR"  2>/dev/null
exit $status