stockholm/krebs/4lib/infest/finalize.sh

75 lines
1.3 KiB
Bash

#! /bin/sh
set -eux
{
umount /mnt/nix
umount /mnt/root
umount /mnt/boot
umount /boot || :
umount /mnt
coreutils_path=$(set +f; for i in /nix/store/*coreutils*/bin; do :; done; echo $i)
sed_path=$(set +f; for i in /nix/store/*gnused*/bin; do :; done; echo $i)
PATH="$coreutils_path:$sed_path"
export PATH
mkdir /oldshit
#fix bug where grub install cant find the /nix/store because its under a bind mount
if test -e /boot/grub/grub.cfg; then
sed -i 's,//store,/nix/store,g' /boot/grub/grub.cfg
fi;
mv /bin /oldshit/
mv /newshit/bin /
# TODO ensure /boot is empty
# skip boot
rmdir /newshit/boot
# skip /dev
rmdir /newshit/dev
mv /etc /oldshit/
mv /newshit/etc /
# skip /nix (it's already there)
rmdir /newshit/nix
# skip /proc
rmdir /newshit/proc
# skip /run
rmdir /newshit/run
# skip /sys
rmdir /newshit/sys
# skip /root
rmdir /newshit/root
# skip /tmp
# TODO rmdir /newshit/tmp
mv /home /oldshit/
mv /newshit/home /
mv /usr /oldshit/
mv /newshit/usr /
mv /var /oldshit/
mv /newshit/var /
mv /lib /oldshit/
mv /lib64 /oldshit/
mv /sbin /oldshit/
mv /srv /oldshit/
mv /opt /oldshit/
mv /newshit /root/ # TODO this one shoult be empty
mv /oldshit /root/
sync
}