nix config
at deck 80 lines 1.7 kB view raw
1#!/usr/bin/env bash 2set -exu 3 4check_installer() { 5 if [ -e /etc/NIXOS ]; then 6 echo -e "\e[1;32mRunning in the NixOS installer environment.\e[0m" 7 else 8 echo -e "\e[1;31mNot running in the NixOS installer environment.\e[0m" 9 exit 1 10 fi 11} 12 13cleanup() { 14 rm -rf nixos-config-main.zip nixos-config-main nixos-config 15} 16 17download_config() { 18 curl -LJ0 https://github.com/dustinlyons/nixos-config/archive/main.zip -o nixos-config-main.zip 19 unzip nixos-config-main.zip 20 mv nixos-config-main/templates/starter nixos-config 21 cd nixos-config 22} 23 24run_apply() { 25 ./apps/x86_64-linux/apply 26 if [ ! -f /tmp/username.txt ]; then 27 echo -e "\e[1;31mError: /tmp/username.txt does not exist.\e[0m" 28 exit 1 29 fi 30 export USERNAME=$(cat /tmp/username.txt) 31} 32 33run_disko() { 34 sudo nix run --extra-experimental-features nix-command --extra-experimental-features flakes \ 35 github:nix-community/disko -- --mode zap_create_mount ./modules/nixos/disk-config.nix 36} 37 38setup_files() { 39 sudo mkdir -p /mnt/etc/nixos 40 sudo cp -r * /mnt/etc/nixos 41 cd /mnt/etc/nixos 42} 43 44install_nixos() { 45 ARCH=$(uname -m) 46 47 case "$ARCH" in 48 x86_64) 49 FLAKE_TARGET="x86_64-linux" 50 ;; 51 aarch64) 52 FLAKE_TARGET="aarch64-linux" 53 ;; 54 *) 55 echo -e "${RED}Unsupported architecture: $ARCH${CLEAR}" 56 exit 1 57 ;; 58 esac 59 60 sudo nixos-install --flake .#$FLAKE_TARGET $@ 61 sudo chmod -R 775 /mnt/etc/nixos 62} 63 64prompt_reboot() { 65 read -p "Do you want to reboot now? (y/yes) " choice 66 case "$choice" in 67 y|Y|yes|YES ) echo -e "\e[1;32mRebooting...\e[0m" && sudo reboot;; 68 * ) echo -e "\e[1;33mReboot skipped.\e[0m";; 69 esac 70} 71 72cleanup 73check_installer 74download_config 75run_apply 76run_disko 77setup_files 78install_nixos 79cleanup 80prompt_reboot