diff --git a/modules/system/installer.nix b/modules/system/installer.nix index 18d59b5..e49d5bb 100644 --- a/modules/system/installer.nix +++ b/modules/system/installer.nix @@ -1,7 +1,7 @@ { pkgs, ... }: { # Inspired by https://github.com/cleverca22/nix-tests/blob/master/kexec/justdoit.nix - # This will partition and format drives; use at your own risk. + # This script will partition and format drives; use at your own risk! type = "app"; @@ -12,21 +12,27 @@ DISK=$1 FLAKE=$2 + PARTITION_PREFIX="" if [ -z "$DISK" ] || [ -z "$FLAKE" ]; then echo "Missing required parameter." echo "Usage: installer -- " echo "Example: installer -- nvme0n1 desktop" echo "Flake example: nix run github:nmasur/dotfiles#installer -- nvme0n1 desktop" + echo "(exiting)" exit 1 fi + case "$DISK" in nvme*) + PARTITION_PREFIX="p" + esac + parted /dev/''${DISK} -- mklabel gpt parted /dev/''${DISK} -- mkpart primary 512MiB 100% parted /dev/''${DISK} -- mkpart ESP fat32 1MiB 512MiB parted /dev/''${DISK} -- set 3 esp on - mkfs.ext4 -L nixos /dev/''${DISK}p1 - mkfs.fat -F 32 -n boot /dev/''${DISK}p2 + mkfs.ext4 -L nixos /dev/''${DISK}''${PARTITION_PREFIX}1 + mkfs.fat -F 32 -n boot /dev/''${DISK}''${PARTITION_PREFIX}2 mount /dev/disk/by-label/nixos /mnt mkdir --parents /mnt/boot