2025-02-09 09:17:51 +01:00
|
|
|
{
|
|
|
|
lib,
|
|
|
|
pkgs,
|
|
|
|
...
|
|
|
|
}:
|
|
|
|
|
|
|
|
let
|
2025-02-09 09:18:57 +01:00
|
|
|
makeWrapper = "${pkgs.makeWrapper}/nix-support/setup-hook";
|
2025-02-09 09:17:51 +01:00
|
|
|
# bool -> nixpkgs[]
|
2025-02-09 09:18:57 +01:00
|
|
|
wrappedNixExecutables = inEnvironment: assert builtins.isBool inEnvironment; pkgs.symlinkJoin {
|
|
|
|
name = "${pkgs.nix.name}-wrap";
|
|
|
|
paths = [ pkgs.nix ];
|
|
|
|
postBuild = ''
|
|
|
|
. ${makeWrapper}
|
|
|
|
wrapProgram $out/bin/nix-build \
|
|
|
|
--add-flags "--log-format" \
|
|
|
|
--add-flags "bar${lib.optionalString inEnvironment "-with-logs"}"
|
|
|
|
wrapProgram $out/bin/nix-shell \
|
|
|
|
--add-flags "--log-format" \
|
|
|
|
--add-flags "bar"
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
|
|
|
wrappedNixosExecutables = pkgs.symlinkJoin {
|
|
|
|
name = "${pkgs.nixos-rebuild.name}-wrap";
|
|
|
|
paths = [ pkgs.nixos-rebuild ];
|
|
|
|
postBuild = ''
|
|
|
|
. ${makeWrapper}
|
|
|
|
wrapProgram $out/bin/nixos-rebuild \
|
|
|
|
--add-flags "--log-format" \
|
|
|
|
--add-flags "bar"
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
wrappedNix = (pkgs.symlinkJoin {
|
2025-02-09 09:17:51 +01:00
|
|
|
name = "wrappedNix-${pkgs.nix.version}";
|
2025-02-09 09:18:57 +01:00
|
|
|
paths = [ pkgs.nix ] ++ [( wrappedNixExecutables false )];
|
2025-02-09 09:17:51 +01:00
|
|
|
}).overrideAttrs {
|
|
|
|
version = pkgs.nix.version;
|
|
|
|
passthru.meta = pkgs.nix.meta;
|
|
|
|
};
|
|
|
|
in {
|
|
|
|
config = {
|
|
|
|
nix.package = wrappedNix;
|
|
|
|
environment.systemPackages = lib.map (lib.hiPrio) [
|
|
|
|
(wrappedNixExecutables true)
|
|
|
|
wrappedNixosExecutables
|
|
|
|
];
|
|
|
|
};
|
|
|
|
}
|