#!/usr/bin/ash

# You can set these variables manually inside their respective functions if
# you do not wish to boot using MultiROM:
# 
# To boot using a loop-mounted image stored in /data as the root FS:
# loop=/path/to/arch.img
# loopfstype=ext4
#
# To boot using a bind-mounted subdirectory of /data as the root FS:
# rootsubdir=/local/arch
#
# loop= and rootsubdir= are relative to /data on Android, not /.


run_hook () {
    if [ -z "$rootsubdir" ]; then
        if [ -z "$loop" ]; then
            error "no loop= or rootsubdir= provided on cmdline"
            return 1
        else
            msg "root is an image at: $loop"
            mount_handler="img_mount_handler"
        fi
    else
        msg "root is a subdirectory at: $rootsubdir"
        mount_handler="dir_mount_handler"
    fi
}

img_mount_handler() {
    mkdir /host
    mount -t $rootfstype $root /host
    mknod /dev/loop256 b 7 256
    losetup /dev/loop256 /host/$loop
    mount -t $loopfstype -o rw,noatime /dev/loop256 /new_root
}

dir_mount_handler() {
    mkdir /host
    mount -t $rootfstype $root /host
    mount --bind /host/$rootsubdir /new_root
}