nixos/{core; nix}: factor out nix overriding

This commit is contained in:
Wroclaw 2025-02-09 09:17:51 +01:00
parent be62805cc6
commit 5c01a58f54
2 changed files with 35 additions and 23 deletions

View file

@ -4,28 +4,10 @@
{ inputs, lib, pkgs, ... }:
let
inherit (pkgs) mkWrappedExecutable;
# bool -> nixpkgs[]
wrappedNixExecutables = inEnvironment: assert builtins.isBool inEnvironment; [
(mkWrappedExecutable {pkg = pkgs.nix; exe = "nix-build"; wrapperArgs = ["--add-flags" "\"--log-format\"" "--add-flags" "bar${lib.optionalString inEnvironment "-with-logs"}"];})
(mkWrappedExecutable {pkg = pkgs.nix; exe = "nix-shell"; wrapperArgs = ["--add-flags" "\"--log-format\"" "--add-flags" "bar"];})
];
wrappedNixosExecutables = [
(mkWrappedExecutable {pkg = pkgs.nixos-rebuild; wrapperArgs = ["--add-flags" "\"--log-format\"" "--add-flags" "bar"];})
];
wrappedNix = (pkgs.buildEnv {
name = "wrappedNix-${pkgs.nix.version}";
paths = [ pkgs.nix ] ++ wrappedNixExecutables false;
}).overrideAttrs {
version = pkgs.nix.version;
passthru.meta = pkgs.nix.meta;
};
in
{
imports = [
./module-overrides.nix
./nix.nix
];
# kernel
@ -37,7 +19,6 @@ in
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
nix = {
package = wrappedNix;
channel.enable = false;
settings.experimental-features = [
"no-url-literals"
@ -62,9 +43,7 @@ in
fastfetch
smartmontools
ddrescue
] ++ wrappedNixExecutables true
++ wrappedNixosExecutables;
];
programs.git.enable = true;
programs.git.config = {
commit.verbose = true;

33
nix-os/nix.nix Normal file
View file

@ -0,0 +1,33 @@
{
lib,
pkgs,
...
}:
let
inherit (pkgs) mkWrappedExecutable;
# bool -> nixpkgs[]
wrappedNixExecutables = inEnvironment: assert builtins.isBool inEnvironment; [
(mkWrappedExecutable {pkg = pkgs.nix; exe = "nix-build"; wrapperArgs = ["--add-flags" "\"--log-format\"" "--add-flags" "bar${lib.optionalString inEnvironment "-with-logs"}"];})
(mkWrappedExecutable {pkg = pkgs.nix; exe = "nix-shell"; wrapperArgs = ["--add-flags" "\"--log-format\"" "--add-flags" "bar"];})
];
wrappedNixosExecutables = [
(mkWrappedExecutable {pkg = pkgs.nixos-rebuild; wrapperArgs = ["--add-flags" "\"--log-format\"" "--add-flags" "bar"];})
];
wrappedNix = (pkgs.buildEnv {
name = "wrappedNix-${pkgs.nix.version}";
paths = [ pkgs.nix ] ++ wrappedNixExecutables false;
}).overrideAttrs {
version = pkgs.nix.version;
passthru.meta = pkgs.nix.meta;
};
in {
config = {
nix.package = wrappedNix;
environment.systemPackages = lib.map (lib.hiPrio) [
(wrappedNixExecutables true)
wrappedNixosExecutables
];
};
}