From 2cec4a09f128432452523f9f47d8e07a3dbe4a4d Mon Sep 17 00:00:00 2001 From: madmin Date: Wed, 19 Jun 2024 15:12:50 +0200 Subject: [PATCH] For bootstrapping new machines --- scripts/install-script.sh | 11 +++++++++++ shell.nix | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 scripts/install-script.sh create mode 100644 shell.nix diff --git a/scripts/install-script.sh b/scripts/install-script.sh new file mode 100644 index 0000000..d18e486 --- /dev/null +++ b/scripts/install-script.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +nix-shell shell.nix + +sudo mkdir -p /tmp/config/etc/nixos/ && cd /tmp/config/etc/nixos/ + +git clone https://git.mattmor.in/Nix/nixos-config.git + +sudo nix --experimental-features "nix-command flakes" flake lock + +sudo nix --experimental-features "nix-command flakes" run 'github:nix-community/disko#disko-install' -- --write-efi-boot-entries --flake '/tmp/config/etc/nixos#mymachine' --disk main /dev/disk/by-id/nvme-eui.002538d211111953 diff --git a/shell.nix b/shell.nix new file mode 100644 index 0000000..424425a --- /dev/null +++ b/shell.nix @@ -0,0 +1,35 @@ +#################### DevShell #################### +# +# Custom shell for bootstrapping on new hosts, modifying nix-config, and secrets management + +{ pkgs ? # If pkgs is not defined, instantiate nixpkgs from locked commit + let + lock = (builtins.fromJSON (builtins.readFile ./flake.lock)).nodes.nixpkgs.locked; + nixpkgs = fetchTarball { + url = "https://github.com/nixos/nixpkgs/archive/${lock.rev}.tar.gz"; + sha256 = lock.narHash; + }; + in + import nixpkgs { overlays = [ ]; } +, ... +}: { + default = pkgs.mkShell { + NIX_CONFIG = "extra-experimental-features = nix-command flakes repl-flake"; + nativeBuildInputs = builtins.attrValues { + inherit (pkgs) + # Required for pre-commit hook 'nixpkgs-fmt' only on Darwin + # REF: + libiconv + + nix + home-manager + git + just + pre-commit + + age + ssh-to-age + sops; + }; + }; +}