#!/bin/bash

set -x
echo "System-update: update from new img start .. "
RECOVERY_PART=`blkid | grep recovery | cut -f1 -d':'`
echo "Recovery partition: ${RECOVERY_PART}"

umount -a
systemctl stop NetworkManager.service
systemctl stop networking
mount ${RECOVERY_PART} /mnt/

rescue_vmlinuzname=`find /mnt/boot -name "vmlinuz-*generic" | head -1`
rescue_initrdname=`find /mnt/boot -name "initrd*generic" | head -1`
rescue_cmdline=`cat /mnt/boot/grub/grub.cfg | grep UUID | head -1| cut -f2- -d" "`

#if [[ -f /home/mobile_timestamp ]] ; then
#    find /etc -newer /home/mobile_timestamp | tar --acls --xattrs -zcf /home/oldfs.tgz -T -
#fi
#    find /root -newer /home/mobile_timestamp | tar --acls --xattrs -zcf /home/root.tgz -T -
#  -not -path "/proc*" -not -path "/sys*" -not -path "/run*" -not -path "/tmp*" -not -path "/var/tmp*" \
#  -not -path "/var/lib/dpkg*" -not -path "/var/cache*" -not -path "/boot*" -not -path "/opt*" -not -path "/home*" \
#  -newer /home/mobile_timestamp | tar --acls --xattrs -zcf /home/newfs.tgz -T -


echo "#!/bin/bash
chmod 644 /etc/rc.local
DISK_DEV=\`blkid | grep recovery | cut -f1 -d':'| sed 's/p[0-9]//' | sed 's/a[0-9]/a/' | sed 's/b[0-9]/b/' | sed 's/c[0-9]/c/'\`
echo \"Disk device: \${DISK_DEV}\"
umount /boot/efi
umount \${DISK_DEV}p2
umount \${DISK_DEV}2
umount /dev/astramvg/optvol
umount /dev/astramvg/homevol
umount /dev/astramvg/rootvol
mount
mount /dev/astramvg/homevol /mnt
losetup --find --show --partscan /mnt/administrator/update/usb*.img
if [ -b /dev/loop0p2 ]; then
    mkdir -p /mnt/administrator/update/loop
    mount /dev/loop0p2 /mnt/administrator/update/loop
    echo \"old image\"; ls -la /opt
    mount -o bind /mnt/administrator/update/loop/opt /opt
    echo \"new image\"; ls -la /opt
    mount
    echo \"start ..\"
    sync
    /opt/astra-mobile-install -u -s -d \${DISK_DEV}
else
    echo \"ERROR: image error\"
fi
losetup -d /dev/loop0
rm -f /mnt/administrator/update/usb*.img*
rm -f /mnt/administrator/update/astra*
sync
umount /opt
umount /mnt
sync
reboot
" > /mnt/etc/rc.local
chmod 755 /mnt/etc/rc.local
sync

#kexec -l ${rescue_vmlinuzname} --initrd=${rescue_initrdname} --command-line=${rescue_cmdline}; kexec -e
nextboot=`efibootmgr | grep Recovery | cut -f1 -d'*' | sed 's/Boot//'`
echo "next boot: ${nextboot}"
efibootmgr -n ${nextboot}
reboot
