mirror of
https://git.lgmrszd.xyz/Lgmrszd/nix-cfg.git
synced 2024-11-29 14:08:43 +01:00
58 lines
855 B
Nix
58 lines
855 B
Nix
|
{ pkgs }:
|
||
|
|
||
|
pkgs.writeShellScriptBin "my-rebuild" ''
|
||
|
BOOT=/boot
|
||
|
ATTEMPTS=5
|
||
|
is_mounted(){
|
||
|
${pkgs.util-linux}/bin/findmnt --mountpoint $BOOT
|
||
|
return $?
|
||
|
}
|
||
|
|
||
|
mount_boot(){
|
||
|
echo "mounting $BOOT..."
|
||
|
mount $BOOT 2> /dev/null
|
||
|
return $?
|
||
|
}
|
||
|
|
||
|
umount_boot(){
|
||
|
echo "umounting $BOOT..."
|
||
|
umount $BOOT
|
||
|
return $?
|
||
|
}
|
||
|
|
||
|
try_mount(){
|
||
|
attempt=0
|
||
|
|
||
|
while [[ attempt -ne 5 ]]
|
||
|
do
|
||
|
mount_boot
|
||
|
res1=$?
|
||
|
is_mounted
|
||
|
res2=$?
|
||
|
if [[ $res1 -eq 0 && $res2 -eq 0 ]]; then
|
||
|
echo "Mounted $BOOT!"
|
||
|
return 0
|
||
|
fi
|
||
|
echo "Failed to mount $BOOT, waiting..."
|
||
|
attempt=$(($attempt+1))
|
||
|
sleep 2
|
||
|
done
|
||
|
return 1
|
||
|
}
|
||
|
|
||
|
if [[ $EUID -ne 0 ]]; then
|
||
|
echo "Must be a superuser!"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
try_mount
|
||
|
if [[ $? -ne 0 ]]; then
|
||
|
echo "Failed to mount $BOOT!"
|
||
|
exit 1
|
||
|
fi
|
||
|
echo "Rebuilding..."
|
||
|
nixos-rebuild $@
|
||
|
sleep 2
|
||
|
echo "Done rebuild!"
|
||
|
umount_boot
|
||
|
''
|