{ pkgs ? import { }, qpkgs ? let src = fetchTree (builtins.parseFlakeRef "github:Qyriad/nur-packages"); in import src { inherit pkgs; }, }: let inherit (qpkgs) lib; dynix = qpkgs.callPackage ./package.nix { }; byStdenv = lib.mapAttrs (stdenvName: stdenv: let withStdenv = dynix.override { inherit stdenv; }; dynix' = withStdenv.overrideAttrs (prev: { pname = "${prev.pname}-${stdenvName}"; }); in dynix') qpkgs.validStdenvs; 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 = { ... }: { imports = [ ./configuration.nix (lib.setAttrByPath option (lib.mkOverride (-999) value)) ]; }; }; withActivationScripts = evalNixos { configuration = ({ ... }: { imports = [ ./configuration.nix ]; config.environment.systemPackages = [ nixosAfter.config.dynamicism.for.gotosocial.activate ]; }); }; in { inherit nixosBefore nixosAfter withActivationScripts; }; in dynix.overrideAttrs (final: prev: let self = final.finalPackage; in lib.recursiveUpdate prev { passthru = { ts = let scope = pkgs.callPackage ./modules/tests.nix { }; in scope.packages scope; dync = self.nixos.config.dynamicism; dyno = self.nixos.options.dynamicism; gotosocial = self.nixos.options.dynamicism.for.valueMeta.attrs.gotosocial.configuration; inherit byStdenv; nixos = evalNixos { configuration = ./configuration.nix; }; c = self.nixos; nixos-vm = self.nixos.config.system.build.vm; doChange = builtins.seq self.nixos.config.dynamicism doChange; withVox = self.doChange { option = lib.splitString "." "services.gotosocial.settings.application-name"; value = "Vox is an asshole"; }; }; })