nixos-configuration/nix-os/nix.nix

55 lines
1.3 KiB
Nix
Raw Normal View History

{
lib,
pkgs,
...
}:
let
# bool -> nixpkgs[]
wrappedNixExecutables = inEnvironment: assert builtins.isBool inEnvironment; pkgs.symlinkJoin {
name = "${pkgs.nix.name}-wrap";
paths = [ pkgs.nix ];
nativeBuildInputs = [
pkgs.makeWrapper
];
postBuild = ''
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 ];
nativeBuildInputs = [
pkgs.makeWrapper
];
postBuild = ''
wrapProgram $out/bin/nixos-rebuild \
--add-flags "--log-format" \
--add-flags "bar"
'';
};
wrappedNix = (pkgs.symlinkJoin {
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
];
};
}