#!/bin/bash
. /etc/confluent/functions
# the image will be used to deploy itself
# provide both access to image (for parsing metadata)
# and existing mounts of image (to take advantage of caching)
mount -o bind /sys /sysroot/sys
mount -o bind /dev /sysroot/dev
mount -o bind /proc /sysroot/proc
mount -o bind /run /sysroot/run


if [ ! -f /tmp/mountparts.sh ]; then
    mkdir -p /sysroot/run/imginst/sources/_
    mount -o bind /mnt/remote /sysroot/run/imginst/sources/_
else
    for srcmount in $(cat /tmp/mountparts.sh | awk '{print $2}'); do
        srcname=${srcmount#/dev/mapper/mproot}
        srcdir=$(echo $srcmount | sed -e 's!/dev/mapper/mproot!/mnt/remote!' -e 's!_!/!g')
        mkdir -p /sysroot/run/imginst/sources/$srcname
        mount -o bind $srcdir /sysroot/run/imginst/sources/$srcname
    done
fi
cd /sysroot/run
chroot /sysroot/ bash -c "source /etc/confluent/functions; run_remote_python getinstalldisk"
chroot /sysroot/ bash -c "source /etc/confluent/functions; run_remote_parts pre.d"
if [ ! -f /sysroot/tmp/installdisk ]; then
    echo 'Unable to find a suitable installation target device, ssh to port 2222 to investigate'
    while [ ! -f /sysroot/tmp/installdisk ]; do
        sleep 1
    done
fi
lvm vgchange -a n
udevadm control -e
chroot /sysroot /usr/lib/systemd/systemd-udevd --daemon
chroot /sysroot bash -c "source /etc/confluent/functions; run_remote_python image2disk.py"
echo "Port 22" >> /etc/ssh/sshd_config
echo 'Match LocalPort 22' >> /etc/ssh/sshd_config
echo '    ChrootDirectory /sysroot/run/imginst/targ' >> /etc/ssh/sshd_config
kill -HUP $(cat /run/sshd.pid)

chroot /sysroot/run/imginst/targ bash -c "source /etc/confluent/functions; run_remote post.sh"
chroot /sysroot bash -c "umount \$(tac /proc/mounts|awk '{print \$2}'|grep ^/run/imginst/targ)"