Compare commits
1 Commits
Author | SHA1 | Date |
---|---|---|
|
7d39b44e6a |
26
flake.nix
26
flake.nix
|
@ -21,7 +21,6 @@
|
|||
(import ./overlay.nix)
|
||||
(import "${lix-module}/overlay.nix" { inherit lix; })
|
||||
];
|
||||
forAllSystems = nixpkgs.lib.genAttrs nixpkgs.lib.systems.flakeExposed;
|
||||
in {
|
||||
# we don't just use nix.registry.whatever.flake = self
|
||||
# the reason for this is to be able to handle a flake.lock containing an entry for this
|
||||
|
@ -43,6 +42,8 @@
|
|||
meta.path-entry = "dragnpkgs-unstable=flake:dragnpkgs-unstable";
|
||||
|
||||
lib = nixpkgs.lib.extend (final: prev: {
|
||||
forAllSystems = final.genAttrs final.systems.flakeExposed;
|
||||
|
||||
licenses = prev.licenses // { fyptl = import ./lib/licenses/fyptl.nix; };
|
||||
|
||||
nixosSystem = args:
|
||||
|
@ -172,26 +173,13 @@
|
|||
} // builtins.removeAttrs args [ "modules" ]
|
||||
);
|
||||
|
||||
mkFlake = flakeDef:
|
||||
let
|
||||
rewritePerSystem = sectionDef: (forAllSystems (system:
|
||||
builtins.mapAttrs (name: value:
|
||||
if final.isDerivation value then
|
||||
value
|
||||
else
|
||||
self.legacyPackages.${system}.callPackage value {}
|
||||
) sectionDef
|
||||
));
|
||||
in
|
||||
builtins.mapAttrs (name: value:
|
||||
if name == "packages" || name == "legacyPackages" || name == "devShells" then
|
||||
rewritePerSystem value
|
||||
else
|
||||
value
|
||||
) flakeDef;
|
||||
mkFlake = import ./lib/mkflake/default.nix {
|
||||
pkgs = system: self.legacyPackages.${system};
|
||||
lib = final;
|
||||
};
|
||||
});
|
||||
|
||||
legacyPackages = forAllSystems (system:
|
||||
legacyPackages = self.lib.forAllSystems (system:
|
||||
let
|
||||
unsafeConf = if builtins.hasAttr "extraBuiltins" builtins then (
|
||||
let conf = builtins.extraBuiltins; in
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
{ pkgs, lib }:
|
||||
flakeDef:
|
||||
let
|
||||
rewritePerSystem = final: sectionDef:
|
||||
lib.forAllSystems (system:
|
||||
builtins.mapAttrs (name: value:
|
||||
if lib.isDerivation value then
|
||||
value
|
||||
else
|
||||
(pkgs system).callPackage value { self = (final system); }
|
||||
) sectionDef
|
||||
);
|
||||
rewriteAttr = final: name: value:
|
||||
let
|
||||
final_self = system: (builtins.mapAttrs (aname: avalue:
|
||||
if aname == "packages" || aname == "legacyPackages" || aname == "devShells" then
|
||||
avalue.${system}
|
||||
else
|
||||
avalue
|
||||
) final);
|
||||
in
|
||||
if name == "packages" || name == "legacyPackages" || name == "devShells" then
|
||||
rewritePerSystem final_self value
|
||||
else
|
||||
value;
|
||||
self = builtins.mapAttrs (rewriteAttr self) flakeDef;
|
||||
in
|
||||
self
|
Loading…
Reference in New Issue