nixos-configuration/nix-os/nix.nix

62 lines
1.7 KiB
Nix

{
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"
wrapProgram $out/bin/nix-env \
--add-flags "--log-format" \
--add-flags "bar"
'';
passthru = {
inherit (pkgs.nix) man meta version;
};
};
# NIXPKGS-PR: 389487
futureNixosExecutables = let
nixpkgs = builtins.fetchTarball {
url = "https://github.com/NixOS/nixpkgs/archive/e8f4dba5135ce202c7ef77118f145ef8b3803088.tar.gz";
sha256 = "1ssqca6x9g6ys754zj2sdvsi85hwfhqd04pa445gavr4wiadgv0b";
};
in pkgs.callPackage "${nixpkgs}/pkgs/os-specific/linux/nixos-rebuild/default.nix" {};
wrappedNixosExecutables = pkgs.symlinkJoin {
name = "${pkgs.nixos-rebuild.name}-wrap";
paths = [ futureNixosExecutables ];
nativeBuildInputs = [
pkgs.makeWrapper
];
postBuild = ''
wrapProgram $out/bin/nixos-rebuild \
--add-flags "--log-format" \
--add-flags "bar" \
--add-flags "--use-remote-sudo"
'';
};
in {
config = {
nix.package = wrappedNixExecutables false;
environment.systemPackages = lib.map (lib.hiPrio) [
(wrappedNixExecutables true)
wrappedNixosExecutables
];
system.build.nixos-rebuild = lib.mkForce wrappedNixosExecutables;
system.tools.nixos-rebuild.enable = false;
};
}