summaryrefslogtreecommitdiff
path: root/maple-chroot
blob: 5d7d52d92721340594e661e143b350b0cc413313 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/sh

if [ -z "$1" ] && [ ! -d "$1" ]; then
    echo "Usage: $0 <root>"
    exit 1
fi

if mount --rbind /dev $1/dev && mount --make-rslave $1/dev; then
    if mount -t proc /proc $1/proc; then
        if mount --bind /run $1/run; then
            if mount --rbind /sys $1/sys && mount --make-rslave $1/sys; then
                if mount --rbind /tmp $1/tmp; then
                    SHELL=$2
                    [ -z "$SHELL" ] && SHELL=/bin/sh
                    chroot $1 $SHELL
                    umount -R $1/tmp
                fi
                umount -R $1/sys
            fi
            umount -R $1/run
        fi
        umount -R $1/proc
    fi
    umount -R $1/dev
fi