Refactor shell.nix to import overlays and yay. Better fitted for doomsday scenario

This commit is contained in:
Chris Toph 2025-04-22 00:56:36 -04:00
parent 81cf3ff733
commit 1bc6a348b0

View file

@ -1,4 +1,4 @@
# Shell for bootstrapping flake-enabled nix and other tooling
# This is a Nix flake shell that provides a minimal environment for new install or system recovery
{
pkgs ?
# If pkgs is not defined, instantiate nixpkgs from locked commit
@ -8,23 +8,72 @@
url = "https://github.com/nixos/nixpkgs/archive/${lock.rev}.tar.gz";
sha256 = lock.narHash;
};
# Import overlays from the flake's overlay structure
overlays = [
(import ./overlays { inputs = { }; }).default
];
in
import nixpkgs { overlays = [ ]; },
import nixpkgs { inherit overlays; },
...
}:
let
# Explicitly add the yay package to the shell in case overlay fucks up
yay = import ./pkgs/yay/package.nix { inherit pkgs lib; };
inherit (pkgs) lib;
in
{
default = pkgs.mkShell {
nativeBuildInputs = builtins.attrValues {
nativeBuildInputs =
builtins.attrValues {
inherit (pkgs)
# Basic nix tools
nix
nixos-rebuild
home-manager
nh
# Git for repo management
git
# Shells
fish
bash
# Config tools
dconf2nix
bats # for bash testing
# Network tools (for recovery scenarios)
curl
wget
# System tools
coreutils
findutils
gzip
zstd
# Text editors for emergency config edits
micro
nano
# Diagnostics
inxi
pciutils
usbutils
lshw
;
};
}
++ [
yay
];
FLAKE = toString ./.;
shellHook = ''
clear
echo "Minimal shell initialized with flake overlays"
echo -e "Run '\033[1;34myay rebuild\033[0m' to rebuild your system if needed"
echo -e "FLAKE environment variable is set to: \033[1;34m$FLAKE\033[0m"
'';
};
}