2026-01-21 15:23:04 +01:00
|
|
|
{
|
|
|
|
|
pkgs ? import <nixpkgs> { },
|
|
|
|
|
qpkgs ? let
|
|
|
|
|
src = fetchTree (builtins.parseFlakeRef "github:Qyriad/nur-packages");
|
|
|
|
|
in import src { inherit pkgs; },
|
|
|
|
|
}: let
|
|
|
|
|
inherit (qpkgs) lib;
|
|
|
|
|
|
2026-02-02 11:34:52 +01:00
|
|
|
dynix = qpkgs.callPackage ./package.nix { };
|
2026-01-21 15:23:04 +01:00
|
|
|
|
|
|
|
|
byStdenv = lib.mapAttrs (stdenvName: stdenv: let
|
2026-02-02 11:34:52 +01:00
|
|
|
withStdenv = dynix.override { inherit stdenv; };
|
|
|
|
|
dynix' = withStdenv.overrideAttrs (prev: {
|
2026-01-21 15:23:04 +01:00
|
|
|
pname = "${prev.pname}-${stdenvName}";
|
|
|
|
|
});
|
2026-02-02 11:34:52 +01:00
|
|
|
in dynix') qpkgs.validStdenvs;
|
2026-01-21 15:23:04 +01:00
|
|
|
|
2026-02-03 16:19:33 +01:00
|
|
|
evalNixos = import (pkgs.path + "/nixos");
|
|
|
|
|
|
|
|
|
|
doChange = {
|
|
|
|
|
option,
|
|
|
|
|
value,
|
|
|
|
|
}:
|
|
|
|
|
assert lib.isList option;
|
|
|
|
|
assert lib.all lib.isString option;
|
|
|
|
|
let
|
|
|
|
|
nixosBefore = evalNixos {
|
|
|
|
|
configuration = ./configuration.nix;
|
|
|
|
|
};
|
|
|
|
|
dynamicBefore = nixosBefore.config.dynamicism.finalSettings;
|
|
|
|
|
|
|
|
|
|
nixosAfter = evalNixos {
|
|
|
|
|
configuration = lib.mkMerge [
|
|
|
|
|
nixosBefore
|
|
|
|
|
(lib.setAttrByPath option (lib.mkOverride (-999) value))
|
|
|
|
|
];
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
dynamicAfter = nixosAfter.config.dynamicism.finalSettings;
|
|
|
|
|
in {
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
2026-02-02 13:42:07 +01:00
|
|
|
in dynix.overrideAttrs (final: prev: let
|
|
|
|
|
self = final.finalPackage;
|
|
|
|
|
in lib.recursiveUpdate prev {
|
|
|
|
|
passthru = {
|
|
|
|
|
inherit byStdenv;
|
2026-02-03 16:19:33 +01:00
|
|
|
nixos = evalNixos {
|
2026-02-02 13:42:07 +01:00
|
|
|
configuration = ./configuration.nix;
|
|
|
|
|
};
|
|
|
|
|
nixos-vm = self.nixos.config.system.build.vm;
|
2026-02-03 16:19:33 +01:00
|
|
|
doChange = builtins.seq self.nixos.config.dynamicism doChange;
|
2026-02-02 13:42:07 +01:00
|
|
|
};
|
2026-01-21 15:23:04 +01:00
|
|
|
})
|