#!/bin/sh

# Ensure we run as root
if [ "$EUID" -ne 0 ]; then
    echo "Must be ran as root"
    exit 1
fi

# Take chroot user as 1st argument, default to root
if [ $# -ge 1 ]; then
    USERNAME="$1"
else
    USERNAME="root"
fi

MOUNT_POINT="/mnt/arch"

# Make sure the partition is mounted according to fstab
mount "$MOUNT_POINT" 2> /dev/null

# Mount necessary directories for chroot to be possible
mount --types proc /proc "$MOUNT_POINT/proc"
mount --rbind /sys "$MOUNT_POINT/sys"
mount --make-rslave "$MOUNT_POINT/sys"
mount --rbind /dev "$MOUNT_POINT/dev"
mount --make-rslave "$MOUNT_POINT/dev"

# Use /bin/su for chrooting with --login to also run
# /etc/profile and ~/.profile or ~/.zprofile
chroot "$MOUNT_POINT" "/bin/su" "$USERNAME" --login

# Unmount recursively mounted directories
umount -l "$MOUNT_POINT/dev"
umount -l "$MOUNT_POINT/sys"
umount -l "$MOUNT_POINT/proc"
umount -R "$MOUNT_POINT"

# Remount partition according to fstab
mount "$MOUNT_POINT"