about summary refs log tree commit diff stats
path: root/bootstrap/01_install
diff options
context:
space:
mode:
Diffstat (limited to 'bootstrap/01_install')
-rwxr-xr-xbootstrap/01_install72
1 files changed, 72 insertions, 0 deletions
diff --git a/bootstrap/01_install b/bootstrap/01_install
new file mode 100755
index 00000000..5a3acc2d
--- /dev/null
+++ b/bootstrap/01_install
@@ -0,0 +1,72 @@
+#! /usr/bin/env dash
+
+# shellcheck source=/dev/null
+SHELL_LIBRARY_VERSION="1.1.4" . %SHELL_LIBRARY_PATH
+
+INSTALL=y . %SCRIPT_ENSURE_CONFIG_VARIABLES
+
+msg "started creating filesystem..."
+nix run github:nix-community/disko -- --flake "git+https://codeberg.org/soispha/nixos-config#$NIX_HOST" --mode disko
+msg "Finished mounting and generating btrfs subvolumes"
+
+msg "Creating swapfile..."
+msg2 "$(btrfs filesystem mkswapfile --size "$(free -m | awk '{if (NR==2) {printf "%sm\n", $2 + 500}}')" /mnt/swap/swapfile)";
+msg "Finished creating swapfile!"
+
+msg "Important information:"
+msg2 "Swapfile UUID is: $(findmnt -no UUID -T /mnt/swap/swapfile)";
+msg2 "Swapfile resume offset is: $(btrfs inspect-internal map-swapfile -r /mnt/swap/swapfile)";
+msg2 "Root-disk UUID is: $(lsblk -no UUID -T $DISK_ROOT)";
+msg2 "EFI-disk UUID is: $(lsblk -no UUID -T $DISK_EFI)";
+warning "This information needs to be entered in the host configuration BEFORE rebuilding it. Otherwise the system won't boot!"
+
+info_applied=false;
+while [ "$info_applied" = false ];do
+    readp "Have you updated your chosen host with this information? [N/y]: " result
+    case $result in
+        [Yy])
+            info_applied=true;
+            ;;
+        *)
+            warning "You won't be able to boot, if you don't update it!"
+            ;;
+    esac
+done
+
+msg "Checking for incompatibilities..."
+ssd_or_hdd=$(cat /sys/block/$disk/queue/rotational);
+case "$ssd_or_hdd" in
+    0)
+        msg2 "You seem to use a ssd."
+        trim_support=$(lsblk --bytes --json --discard | jq --arg name "$disk" '.blockdevices | .[] | select(.name == $name) | (.["disc-gran"] + .["disc-max"]) != 0');
+        case $trim_support in
+            "true")
+                msg2 "Yay, your ssd supports trim, go on and activate it";
+                ;;
+            "false")
+                msg2 "Nay, your ssd doesn't support trim, go on";
+                ;;
+            *)
+                warning "Your ssd doesn't seem to exists, if this bothers you please open an issue.'";
+                ;;
+        esac
+        ;;
+    1)
+        msg2 "You seem to use a hdd there is nothing you have to do";
+        ;;
+    *)
+        warning "There is no indicator, which shows, which drive your are using.\n This means, that you have to check yourself, which optimizations you should activate."
+        ;;
+esac
+
+
+readp "Do you want to continue with nixos-install? [N/y]: " result
+case $result in
+    [Yy])
+        nix run "git+https://codeberg.org/soispha/nixos-config#setup" --experimental-features 'nix-command flakes';
+        ;;
+    *)
+        msg "Sure, do it yourself"
+        exit 1
+        ;;
+esac