significantly improve purity
This commit is contained in:
parent
45a7d43f77
commit
68e9b9a1e4
12 changed files with 139 additions and 230 deletions
64
default.nix
64
default.nix
|
|
@ -5,71 +5,13 @@
|
|||
in import src { inherit pkgs; },
|
||||
}: let
|
||||
inherit (qpkgs) lib;
|
||||
|
||||
dynix = qpkgs.callPackage ./package.nix { };
|
||||
|
||||
dynix = qpkgs.callPackage ./modules-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";
|
||||
};
|
||||
};
|
||||
in dynix.overrideAttrs (prev: lib.recursiveUpdate prev {
|
||||
passthru = { inherit byStdenv; };
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue