#! /bin/sh set -eux { umount /mnt/nix || [ $? -eq 32 ] umount /mnt/boot || [ $? -eq 32 ] umount /mnt/root || [ $? -eq 32 ] umount /mnt || [ $? -eq 32 ] umount /boot || [ $? -eq 32 ] PATH=$(set +f; for i in /nix/store/*coreutils*/bin; do :; done; echo $i) export PATH mkdir /oldshit mv /bin /oldshit/ mv /newshit/bin / # TODO ensure /boot is empty 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 }