.files/nix/overlays/nix-monitored.nix

50 lines
1.2 KiB
Nix

let
sources = import ../../npins;
in
final: prev:
let
nix-monitored =
sources.nix-monitored.asFlake.packages.${final.stdenv.hostPlatform.system}.default.override
{
inherit (final)
nix # Use the nix the user wants, whether it's lix or nix
nix-output-monitor # don't use the nom pinned by nix-monitored
;
withNotify = false;
};
# * overrides the nix input as nix-monitored
# * any override changing the nix input will change that to nix-monitored
use-nix-monitored =
drv:
let
drv' = drv.override { nix = nix-monitored; };
in
drv'
// rec {
override =
args:
let
args' =
if args ? nix then
args
// {
nix = nix-monitored.override { inherit (args) nix; };
}
else
args;
in
(drv'.override args') // { inherit override; };
};
inherit (prev) lib;
in
lib.optionalAttrs (prev ? nixos-rebuild) {
nixos-rebuild = use-nix-monitored prev.nixos-rebuild;
}
// lib.optionalAttrs (prev ? nixos-rebuild-ng) {
nixos-rebuild-ng = use-nix-monitored prev.nixos-rebuild-ng;
}
// {
nix-direnv = use-nix-monitored prev.nix-direnv;
}